如何在gnuplot中强制颜色范围?

5

我正在使用Gnuplot 4.6版本。我有多个数据文件,每个文件包含三列数据:X坐标、Y坐标和温度。我希望制作一个动画,显示温度随着X和Y坐标的变化而变化的图表。为此,我使用以下脚本:

set pm3d map; set palette;
do for [n=0:200] {splot sprintf("Temperature.%04d.dbl", n) binary array=100:100:1 form="%double" title 'file number'.n}
我的问题是,在绘制几个图之后,颜色的分布发生了变化,无论是在图形还是图例中。这使得从图表中阅读变得非常困难。 我参考了以下文章:gnuplot热力图颜色范围,由于温度变量的范围是0.0到1.2,因此我想使用:
set zrange [0.0:1.2]; set cbrange [0.0:1.2];
但这并没有帮助,温度颜色继续从图形到图形自动缩放。有什么建议吗?

1
很奇怪。您能提供一个完整的最小脚本来重现问题吗?即while gnuplot脚本+数据样本。 - bibi
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
5
除了设置cbrange外,您还可以尝试通过定义自己的调色板来实现。
set palette defined (0 "black",\
                     0.2 "red",\
                     0.4 "orange-red",\
                     0.6 "orange",\
                     0.8 "yellow",\
                     1.0 "light-green",\
                     1.2 "green")

在此输入图片描述

或者,如果您需要离散的数值:

set palette defined (0 "black",\
                     0.2 "black",\
                     0.2 "red",\
                     0.4 "red",\
                     0.4 "orange-red",\
                     0.6 "orange-red",\
                     0.6 "orange",\
                     0.8 "orange",\
                     0.8 "yellow",\
                     1.0 "yellow",\
                     1.0 "light-green",\
                     1.2 "light-green")

enter image description here


这会设置调色板,但不能帮助设置所有连续图中颜色范围。我将尝试更好地解释问题:在一些图中,温度范围在图例(以及图本身)中从0到1.2,然后在其他一些图中跳到范围为0到1.1,从而改变所有颜色分布并使得从图表中读取变得非常困难。 - Meir Zeilig-Hess
奇怪!能否提供创建图形的脚本?您可以尝试在调用“绘图”之前每次调用“set cbrange”吗? - F. Knorr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,