1

我有一个打印的 256x256 数组。它始终是从 -10 到 50 的单个数字。例如,输出文件如下所示:

5 -10 5 4
1 50 -2 4
5 21 35 11
-10 49 -1 0

但在 256x256 的比例上。我怎样才能得到这些值的图表?(它应该是一个高度图)。

我查看了 GNUPlot 文档,但没有找到任何可以帮助我的东西:/ 我有一个 graph.gp 文件,它看起来像这样:

set autoscale
set xrange [0:256]
set yrange [0:256]
set pm3d
cd 'src'
splot "output.dat"

然后我在终端中打开 'gnusplot' 并写入load "graph.gp",但它甚至不想加载 .dat 文件,更不用说给我一个图表了。谢谢你的帮助!

4

2 回答 2

1

我更喜欢使用 matplotlib (python) 来制作我的数字。要使用 matplotlib 执行此操作,您可以使用matshow. 这是您可以运行的快速脚本:

#!/usr/bin/env python

from matplotlib.pylab import *

data = loadtxt("mydata.dat");

matshow(data)

colorbar()

# leaves figure on screen
# comment out when saving file
show()

# uncomment to save file
#savefig('myplot.pdf')

这会产生一个看起来像这样的图(注意我刚刚使用了随机数据):

matshow

该函数loadtxt将以您拥有的格式自动接收您的数据文件(整数,由空格分隔,每一行在其自己的行中)。

于 2012-05-03T21:54:01.167 回答
1

尝试使用matrix关键字:

set pm3d map
splot 'output.dat' matrix

您不必担心设置限制;它们应该自动从 0 变为 256。然后,如果您想使用颜色图,请前往此处查看示例。

于 2012-05-03T23:24:19.210 回答