我有一个 .dat 文件,其中包含两列数字,所以它看起来像这样:
111 112
110.9 109
103 103
等等。
我想将两列相互绘制。我以前从未处理过 .dat 文件,所以我不确定从哪里开始。
到目前为止,我发现 numpy 有一些我可以用来调用的东西。
data = numpy.loadtxt('data.DAT')
但我不知道从这里去哪里。有任何想法吗?
Numpy 本身不支持绘图。您通常会matplotlib
用于绘制 numpy 数组。
如果您只想“查看文件”,我认为最简单的方法是使用plotfile
.
import matplotlib.pyplot as plt
plt.plotfile('data.dat', delimiter=' ', cols=(0, 1),
names=('col1', 'col2'), marker='o')
plt.show()
gnuplot
你可以像在 ipython 中一样使用这个函数:
$ ipython --pylab
...
...
In [1]: plt.plotfile('data.dat', delimiter=' ', cols=(0, 1),
... names=('col1', 'col2'), marker='o')
或将其放入 shell 脚本并将参数传递给它以直接从您的 shell 中使用它
import numpy as np
import matplotlib.pyplot as plot
#data = np.loadtxt("plot_me.dat")
#x,y=np.loadtxt("plot_me.dat",unpack=True) #thanks warren!
#x,y = zip(*data)
#plot.plot(x, y, linewidth=2.0)
plot.plot(*np.loadtxt("plot_me.dat",unpack=True), linewidth=2.0)
plot.show()
[编辑]感谢您的提示,我认为它现在尽可能紧凑:P
如果你希望它是 log10,只需在 nparray 上调用 log10)
plot.plot(*np.log10(np.loadtxt("plot_me.dat",unpack=True)), linewidth=2.0)