我有以下格式的数据:
x y value
1 1 3
1 2 3
1 3 3
2 1 4
2 2 4
2 3 4
3 1 5
3 2 6
3 3 7
在此示例中,值3和4最常出现在3 * 3网格中。目标是创建曲面的图像,坐标的颜色取决于“值”。请记住,这只是一个例子,实际上我有一个大约500 * 150坐标的网格,其值大约为1000.我目前正在绘制这样的图像:
plot "data.csv" u 1:2:3 with points pt 5 ps variable palette
根据例子,使用标准托盘,3和4的颜色相似。当不同值的数量增加时,这会变得更糟。
我想要的是,具有最高频率的值的颜色彼此最显着地不同。我想这样做是因为由于数据的性质,与其他数据相比,通常存在值和高频率接近的值。因此,举例来说,我希望3为蓝色,4为红色。如果有更多的值不会像值5,6和7那样发生,我仍然希望3和4的颜色相隔很远;再次像蓝色和红色。重点在于,由于它们的颜色,很容易区分高频值。
我认为上面的内容很难做到,这可能是另一种选择:作为替代方案,我希望低值的'快速'渐变,例如从1到10的彩虹渐变,不包括例如蓝色。然后,例如,对于值11-1000,我想要朝向剩余颜色的“慢”渐变(在该示例中为蓝色,或者可能是一些剩余颜色的范围)。这也有一定意义,因为它意味着低值具有更多的差异化颜色,并且由于数据的性质,较低的值往往更频繁地发生。我认为这是一个更简单的解决方案,所以如果您有解决方案而不是第一个,请提及它。
提前致谢!
答案 0 :(得分:1)
这是一个可能的调色板作为起点:
set terminal postscript eps color
set output 'test.eps'
set palette defined (0 1 0 1, 1 1 0 0, 2 1 1 0, 3 0 1 0, 100 0 0 1) maxcolor 2**12
test palette
set output
这给出了结果:
我使用了postscript
终端,因为当使用调色板着色时,大多数其他终端仅支持256种颜色。当然,您可以使用lc rgb variable
代替。然后最后一列被解释为rgb值的整数表示,但你必须自己指定完整的颜色函数,包括插值等。