Gnuplot:为绝对值设置调色板颜色

时间:2014-09-01 16:14:36

标签: mapping gnuplot palette

我使用带有调色板的splot绘制2D函数:

set zrange [0.5:1.5] 
set palette defined ( 0 "green", 1 "black", 2 "red" )
splot "HTSG_PeakPositions_thetaI080.gnuplot" using 3:1:5 title 'Relative Peak Positions' with pm3d

这种方式有效;但是,如果图表偏离此水平,我希望图表在1.0处完全是黑色,并且适当地着色。问题是调色板是相对于绘图中包含的min:max值的范围定义的,而不是绝对值。 zrange选项似乎不会影响此行为。有没有办法创建绝对映射?

1 个答案:

答案 0 :(得分:3)

颜色范围受set cbrange

影响
set cbrange [0.5:1.5]
set palette defined ( 0 "green", 1 "black", 2 "red" )
splot "HTSG_PeakPositions_thetaI080.gnuplot" using 3:1:5 title 'Relative Peak Positions' with pm3d

如果您希望某种自动缩放对称为1.0,则可以使用stats命令在绘图前确定颜色范围:

stats "HTSG_PeakPositions_thetaI080.gnuplot" using 5 nooutput
cb_val = (abs(STATS_min - 1) < abs(STATS_max - 1) ? abs(STATS_max - 1) : abs(STATS_min - 1))
set cbrange [1 - cb_val : 1 + cb_val]