【发布时间】:2014-12-24 20:45:38
【问题描述】:
假设我有一个包含 x y z 列的数据文件,如下所示:
-3.063052922487259 -3.141592741012573 401.3000000000000
-3.063052922487259 -3.063052922487259 1.290000000000000
-3.063052922487259 -2.984513103961945 0.920000000000000
-2.984513103961945 -3.141592741012573 0.100000000000000
-2.984513103961945 -3.063052922487259 10.80000000000000
-2.984513103961945 -2.984513103961945 1001.290000000000
-2.905973285436630 -2.984513103961945 514.4000000000000
-2.905973285436630 -2.905973285436630 131.0300000000000
-2.905973285436630 -2.827433466911316 129.3300000000000
z 列中的值范围将定义数据点的颜色。例如,在z列上,如果值在0.0和0.3之间,数据点的颜色将设置为蓝色;如果介于 0.3 和 1 之间,数据点的颜色将设置为橙色;如果在 400 到 1000 之间,数据点的颜色将设置为海军蓝。
所以我写了一些这样的代码:
set xrange [0:15]
set yrange [0:-15]
set zrange [0:1400]
set cbrange [0.001:1400]
set palette defined ( 0 "goldenrod", 0.3 "blue", 1 "orange", 2 "cyan", 4 "yellow", 10 "green", 20 "pink", 50 'gold', 100 'purple', 400 'navy', 1000 "red")
set palette maxcolors 11
unset key
unset surface
splot "DATA.dat" using 1:2:3 with image
这不起作用。有什么帮助吗?
进一步更新: 我真的想更清楚地解释为什么不起作用,但 Stack Overflow 不允许我进一步解释,因为他们要求我有 10 个声望点才能发布图像结果。因此,由于缺乏声誉,我无法发布我的结果。但是我确实修改了我的数据集,所以你现在可以看到 xy 数据是等距的。
所以我只是用文字来描述问题,而不是图像,即颜色框错误。根据我的代码,400 到 1000 之间应该是海军蓝(只有一种颜色)。但是图片上的颜色框显示,在400到1000之间,有5种不同的海军颜色,从浅海军蓝到深海军蓝。请问400到1000之间我怎么能只有一种海军颜色?
【问题讨论】:
-
首先:“不起作用”是什么意思?而且 gnuplot 通常也会给出错误信息,这有助于理解(或只是定位)问题。我可以看到的一个问题是您的 xy 数据不在
image模式所需要的等距离网格上。 -
为什么我的以下评论被其他人删除,没有任何通知? “嗨 sweber。我已尽力更新我的问题。谢谢!”
标签: range gnuplot color-palette