我有一個包含數字的兩列,所以它看起來是這樣的.dat文件:如何用numpy繪製文件?
111 112
110.9 109
103 103
等。
我想繪製兩列對彼此。我從來沒有處理過一個.dat文件,所以我不知道從哪裏開始。
到目前爲止,我發現numpy可以用來打電話。
data = numpy.loadtxt('data.DAT')
但我不知道該從哪裏出發。有任何想法嗎?
我有一個包含數字的兩列,所以它看起來是這樣的.dat文件:如何用numpy繪製文件?
111 112
110.9 109
103 103
等。
我想繪製兩列對彼此。我從來沒有處理過一個.dat文件,所以我不知道從哪裏開始。
到目前爲止,我發現numpy可以用來打電話。
data = numpy.loadtxt('data.DAT')
但我不知道該從哪裏出發。有任何想法嗎?
Numpy不支持plott本身。您通常會使用matplotlib
繪製numpy數組。
如果您只是想「查看文件」,我認爲最簡單的方法是使用plotfile
。
import matplotlib.pyplot as plt
plt.plotfile('data.dat', delimiter=' ', cols=(0, 1),
names=('col1', 'col2'), marker='o')
plt.show()
可以IPython的範圍內使用該功能幾乎像gnuplot
來自:
$ 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
如果你希望它是日誌10只調用日誌10對nparray)
plot.plot(*np.log10(np.loadtxt("plot_me.dat",unpack=True)), linewidth=2.0)
你可以使用'loadtxt'中的'unpack'關鍵字來使代碼更加簡潔:'x,y = np.loadtxt('plot_me.dat',unpack = True)' –
非常感謝!你知道我可以如何取得這些列的log_10嗎? –
我想'plot.plot(* np.log10(np.loadtxt(「plot_me.dat」,unpack = True)),linewidth = 2.0)' –
所以你有一個二維數組的點...這與* .dat文件無關* .txt將工作完全一樣......你真正的q uestion是「我如何繪製一個numpy數組?」 –
'gnuplot'; ^)很簡單。 'plot'yourfile.dat'u 1:2'(但當然,這並不能解決實際問題......) – mgilson
您可以使用Scavis來接口NumPy(或Java中的JNumeric)[參見Scavis手冊](http://jwork.org/scavis/wikidoc/doku.php?id=man:numeric:jnum) – 2014-01-29 03:36:03