在Gnuplot中自定义颜色范围

在Gnuplot中自定义颜色范围,gnuplot,Gnuplot,我有一个等高线图运行得很好,它正在为不同的值生成等量的颜色 我想要的是在右侧生成标签,使每个块具有正确的颜色 当前结果: 我想要的是在每个块上都有这个值: ----三百 ----一百 ----七十 ----三十 ----十, ----一, ----0 编辑: 当我添加此代码时: set cbtics ('300' 300, '100' 100, '30' 30, '10' 10, '1' 1, '0.5' 0.5, '0.1' 0.1, '0.01' 0.01, '0' 0); set pal

我有一个等高线图运行得很好,它正在为不同的值生成等量的颜色

我想要的是在右侧生成标签,使每个块具有正确的颜色

当前结果:

我想要的是在每个块上都有这个值:

----三百

----一百

----七十

----三十

----十,

----一,

----0

编辑: 当我添加此代码时:

set cbtics ('300' 300, '100' 100, '30' 30, '10' 10, '1' 1, '0.5' 0.5, '0.1' 0.1, '0.01' 0.01, '0' 0);
set palette defined (0.1 "#4CAF4F",0.3 "#65B443",0.5 "#7FBA38",0.7 "#98BF2D",0.9 "#B2C521",1.0 "#CBCA16",2 "#E5D00B",3 "#FFD600",4 "#FFC400",5 "#FFB300",6 "#FFA100",7 "#FF9000",8 "#FF7E00",10 "#FF6D00",30 "#F85A00",50 "#F14800",70 "#EA3600",90 "#E32400",100 "#DC1200",300 "#D50000")
结果是不均匀


我希望刻度是均匀的,但无法达到。

我建议您将输出从0到300的比例重新缩放到一个比例,在该比例中,值在颜色栏上手动定义的标签之间线性变化:

rescale(x) = ( x >= 0. && x < 1. ? x : \
               x >= 1. && x < 10. ? 1.+(x-1.)/(10.-1.) : \
               x >= 10. && x < 30. ? 2.+(x-10.)/(30.-10.) : \
               x >= 30. && x < 70. ? 3.+(x-30.)/(70.-30.) : \
               x >= 70. && x < 100. ? 4.+(x-70.)/(100.-70.) : \
               x >= 100. && x < 300. ? 5.+(x-100.)/(300.-100.) : \
               1/0)
set cbrange [0:6]
set cbtics ("0" 0, "1" 1, "10" 2, "30" 3, "70" 4, "100" 5, "300" 6)
set pm3d
splot rescale(x**2+y**2)

最后,请注意,如果您有一张地图,标签就足够了。如果有三维打印,可能还需要重新标记z轴:

set ztics ("0" 0, "1" 1, "10" 2, "30" 3, "70" 4, "100" 5, "300" 6)

您能发布您的代码以便我们更好地理解您的实际意思吗?MWE会很有帮助,即复制并粘贴到gnuplot中,查看结果,然后立即开始修改设置。尝试使用
设置日志cb
(尽管它会忽略0级)
set ztics ("0" 0, "1" 1, "10" 2, "30" 3, "70" 4, "100" 5, "300" 6)