5

生データ(.txt)を含む入力ファイルからMatplotlibでヒストグラムを作成したいと思います。入力ファイルを参照する際に問題が発生しています。かなり小さなプログラムだと思います。Matplotlibの達人、助けはありますか?

私はコードを求めていません、いくつかの入力は私を正しい方向に導くはずです!

4

2 に答える 2

9

実際にNumPyライブラリにある' loadtxt 'を使用することをお勧めします。Matplotlib(csv2rec)には関連する関数がありますが、Matplotlibは実際にはloadtxtで標準化されています。

仕組みは次のとおりです。

from matplotlib import pyplot as PLT

with open('name_of_your_file.csv') as f:
  v = NP.loadtxt(f, delimiter=",", dtype='float', comments="#", skiprows=1, usecols=None)

'loadtxt'から返されるオブジェクトである'v'は、nxmNumPy配列です。

'loadtxt'は、ファイルまたはファイル記述子のいずれかを受け入れます。上記のインスタンスには、ほとんどのメソッドシグネチャがあります。'skiprows'は、スキップする行の数を上から数えて指定する整数です。ヘッダー行をスキップするには、「1」に設定するのが一般的です。'usecols'は'0'で始まり、含める列を列挙するリストです('None'がデフォルトで、'include all'を意味します)。他のパラメーターは期待どおりに機能します。

このデータからヒストグラムをプロットするには:

from matplotlib import pyplot as PLT

v_hist = NP.ravel(v)   # 'flatten' v
fig = PLT.figure()
ax1 = fig.add_subplot(111)

n, bins, patches = ax1.hist(v_hist, bins=50, normed=1, facecolor='green')
PLT.show()
于 2010-04-07T07:00:08.070 に答える
0

入力ファイルからヒストグラムを作成するようにmatplotlibに直接指示することはできません。ファイルを自分で開いて、そこからデータを取得する必要があります。それをどのように行うかは、ファイルの形式によって異なります。各行に数字が付いたファイルの場合は、各行、strip()スペース、改行を調べて、float()それを使用して数字に変換できます。

于 2010-04-07T06:17:15.707 に答える