gnuplot热图轴标记

时间:2013-08-16 12:18:06

标签: gnuplot heatmap

我想使用gnuplot绘制热图。

我的数据是(file.txt):

5   0   0.0531072048
5   5   0.3476492247
5   10  0.322184913
5   20  0.2824368116
5   50  0.2919607884
10  0   0.0472727812
10  5   0.3578374264
10  10  0.3483726737
10  20  0.3212322874
10  50  0.3017652051
20  0   0.0536101408
20  5   0.3460970331
20  10  0.3589370763
20  20  0.412912733
20  50  0.3907459465
50  0   0.0497156879
50  5   0.3611165857
50  10  0.4046003446
50  20  0.4620183753
50  50  0.4156261444
100 0   0.0483082089
100 5   0.3815755779
100 10  0.4031628253
100 20  0.4537462156
100 50  0.4231632329

当我输入以下命令时

plot "file.txt"  using 1:2:3 w image

它会生成热图。但是,网格并不完全对应于数据。有一个5乘5的网格,但网格单元的轴标签与文件的前两列中的值不对应。所有网格单元也具有相同的大小。但是,它们应该有不同的尺寸。

让我试着解释一下我的期望。 下面的图表是使用以下命令生成的:

set xrange [-10:110]
set yrange [-10:60]
plot "file.txt"

data points

此图中的每个“+”对应于文件的前两列(x和y)中的一行。对于每个“+”,在第三列中存在值(z)。该z值是参数值x和y的实验结果。我希望在“+”符号周围看到z值为彩色网格单元格。也就是说,网格单元的中心应该是这些“+”符号。当然,网格单元将是不同大小的矩形。我希望我能说得更清楚一点。

任何帮助将不胜感激。 艾哈迈德

1 个答案:

答案 0 :(得分:1)

怎么样

set pm3d map # depening on what you want
splot "file.txt" w pm3d

要使其工作,您需要更改数据文件并添加一些像这样的新行

5   0   0.0531072048
5   5   0.3476492247
5   10  0.322184913
5   20  0.2824368116
5   50  0.2919607884

10  0   0.0472727812
10  5   0.3578374264
10  10  0.3483726737
10  20  0.3212322874
10  50  0.3017652051

20  0   0.0536101408
20  5   0.3460970331
20  10  0.3589370763
20  20  0.412912733
20  50  0.3907459465

50  0   0.0497156879
50  5   0.3611165857
50  10  0.4046003446
50  20  0.4620183753
50  50  0.4156261444

100 0   0.0483082089
100 5   0.3815755779
100 10  0.4031628253
100 20  0.4537462156
100 50  0.4231632329

或者您可以根据z值更改您创建的包含颜色的绘图。像这样的东西?

set xrange [-10:110]
set yrange [-10:60]
plot "file.txt" u 1:2:3 w p pt 7 ps 4 palette

在这里你也可以玩pt。