我有以下格式的数据:
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,我想要一个“慢”渐变到剩余颜色(在这个例子中是蓝色,或者可能是一些剩余颜色范围)。这在某种程度上也足够了,因为它意味着低值具有更多区分颜色,并且由于数据的性质,低值往往更频繁地出现。我想这是一个更简单的解决方案,所以如果您对此有解决方案但没有第一个解决方案,请提及。
提前致谢!