gnuplot矩阵或图:显示颜色和点值

时间:2013-09-15 14:16:38

标签: matrix colors numbers gnuplot point

我正在使用gnuplot来分析数据。

我经常使用调色板和矩阵。

然而,每当我使用它时,精度始终是问题。

如果我通过定义许多颜色来提高精度,则很难记住和阅读。

如果我减少颜色数量以清除比较,精度会降低。

所以我在考虑使用情节编号的矩阵。 example of matrix

如果我可以同时显示颜色和数字,则会更容易查看和分析。

至少我想要只显示数字,(只使用excel是一个选择,但我不想)

或显示不同颜色的数字。(颜色由点值确定)

如果您知道该怎么办,请告诉我。

如果您无法理解,请告诉我。

提前谢谢你,

2 个答案:

答案 0 :(得分:7)

要绘制标签,只需使用with labels绘图样式。您可以使用任何字符串和字符串格式使用sprintf设置标签:

reset
set autoscale fix
set palette defined (0 'white', 1 'green')
set tics scale 0
unset cbtics
set cblabel 'Score'
unset key
plot 'data.txt' matrix with image,\
     '' matrix using 1:2:(sprintf('%.2f', $3)) with labels font ',16'

pngcairo终端和gnuplot 4.6.3的结果是:

enter image description here

此示例的数据文件data.txt为:

0.22 0.13 0.54 0.83 0.08
0.98 0.57 0.52 0.24 0.66
0.23 0.68 0.24 0.89 0.76
0.89 0.78 0.69 0.78 0.10
0.24 0.77 0.27 0.28 0.69

答案 1 :(得分:0)

要扩展上述答案,通常会发现以下情况:标签应具有不同的颜色以便于阅读。要在深色背景上产生白色标签,在明亮背景上产生黑色标签,我使用以下代码:

threshold = 123456
f = "..."
plot f matrix with image ,\
     '' matrix using 1:2:($3 > threshold ? sprintf('%1.2f', $3) : sprintf("")) with labels tc "white" ,\
     '' matrix using 1:2:($3 < threshold ? sprintf('%1.2f', $3) : sprintf("")) with labels tc "black"