gnuplot"矩阵与图像"具有固定颜色的特定值

时间:2015-01-08 17:22:46

标签: matrix colors gnuplot colorbox palette

使用gnuplot,我正在使用以下命令绘制存储在文件中的矩阵:

set title "Matrix"
set xrange[-0.5:9.5]
set yrange[9.5:-0.5]
set pm3d map
unset key
unset surface
set term postscript eps enhanced color
set out "matrix.eps"
set palette defined (-1 "#A52A2A", 0 "white", 1 "green" )
splot "matcorrel" matrix with image

矩阵具有正值和负值,我想将零值始终设置为调色板绿色区域中的白色正值和棕色值中的负值。正值大于负值,因此gnuplot不会将零置于白色。

我尝试使用set cbrange,但我只是设法修改极端颜色,无法修复中心颜色。

有什么想法吗?非常感谢您提前

1 个答案:

答案 0 :(得分:3)

Gnuplot无法围绕某个值对称自动缩放。你必须使用例如stats自己确定cbrange:

set autoscale xfix
set autoscale yfix
unset key

set term postscript eps enhanced color
set out "matrix.eps"

stats "matcorrel" matrix using 3 nooutput
cbmax = (abs(STATS_min) > abs(STATS_max) ? abs(STATS_min) : abs(STATS_max))
set cbrange [-cbmax:cbmax]
set palette defined (-1 "#A52A2A", 0 "white", 1 "green" )

plot "matcorrel" matrix with image

如果您想对正值和负值使用不同的限制,但将零保持为白色则可以使用

stats "matcorrel" matrix using 3 nooutput
set cbrange [STATS_min:STATS_max]
set palette defined (STATS_min "#A52A2A", 0 "white", STATS_max "green" )

请注意,如果您绘制with image,则无需使用pm3d。由于您正在绘制热图,因此可以直接使用plot