Gnuplot命令转matplotlib
我正在编辑一些旧软件,这些软件是用Fortran写的,并且使用gnuplot来绘图。我想把其中的一些部分移植到Python上,但有点困惑。
我有一个包含飓风数据的矩阵文件,使用以下命令来绘制图形:
plot 'file.txt' matrix with image 1:999:1:480 w l t ""
我对gnuplot的命令不是很理解,所以当我用matplotlib的绘图功能时,得到的结果完全不同。
有没有人知道我该如何在Python中以相同的方式绘制这个图?
1 个回答
2
我同意Christoph的看法:你可能的gnuplot命令行大概是这样的:
plot 'file.txt' matrix with image every 1:999:1:480 t ""
plot
的设置中,with image
和with line
是有冲突的。
Gnuplot喜欢懒惰的方式。你要么讨厌它,要么喜欢它:-)
你总是可以找到更简短的命令:
plot ---> pl
with ---> w
lines ---> l
title ---> t
and so on...
在Python中,你可以尝试类似这样的代码(如果你的命令行中缺少every
这个词,还需要过滤数据...)
#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# Read in data from an ASCII data table
data = np.genfromtxt('data.txt')
ax.imshow(data, cmap=plt.cm.gray, interpolation='nearest')
#ax.imshow(data, cmap=plt.cm.gray)
ax.set_title('My Title')
plt.show()
这段代码能重现gnuplot示例中help image
的效果。
在data.txt
文件中,我放入了和示例相同的数据。
5 4 3 1 0
2 2 0 0 1
0 0 0 1 0
0 1 2 4 3