13

我有一个 .dat 文件,其中包含两列数字,所以它看起来像这样:

111    112
110.9  109
103    103

等等。

我想将两列相互绘制。我以前从未处理过 .dat 文件,所以我不确定从哪里开始。

到目前为止,我发现 numpy 有一些我可以用来调用的东西。

data = numpy.loadtxt('data.DAT')

但我不知道从这里去哪里。有任何想法吗?

4

2 回答 2

15

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 中使用它

plotfile_example

于 2012-09-07T16:51:39.833 回答
4
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

情节 1

如果你希望它是 log10,只需在 nparray 上调用 log10)

plot.plot(*np.log10(np.loadtxt("plot_me.dat",unpack=True)), linewidth=2.0)

日志10

于 2012-09-07T04:40:57.687 回答