csv ファイルに保存された、次のようなデータの大きなテキスト ファイルの棒グラフを作成しようとしています。
#DowntonPBS, 23
#DowntonAbbey, 12
#Download, 8
#Download:, 2
#Downloads, 2
#DownstairsMixtape, 1
#DownWithAssad, 1
#DownYoTLParty, 1
#DowntonAbbey?, 1
#Downtonabbey, 1
#DowntownAbbey, 1
次のコードは私がいる場所です。この方法は過去にさまざまなプロット スクリプトで機能していましたが、ここでは見つけられないように見える何か間違ったことをしました。すべてのデータをプロットする代わりに、3 つのレコードしか取得していないようです。
import pylab as p
import sys
from matplotlib.mlab import csv2rec
y = []
fig = p.figure()
ax = fig.add_subplot(1,1,1)
input = open(sys.argv[1], 'r')
data = csv2rec(input, names=['tag', 'count'])
for item in data['count']:
y.append(item)
N = len(y)
ind = range(N)
ax.bar(ind, y, align='center')
ax.set_ylabel('Counts')
ax.set_title('HashTag Diversity')
ax.set_xticks(ind)
group_labels = data['tag']
ax.set_xticklabels(group_labels)
fig.autofmt_xdate()
p.show()
y と N の print ステートメントを追加し、より大きなデータセットに対してスクリプトを実行すると、次のようになります。
[45, 37, 36]
3
これらの値は非常に大きな配列 "1000" 値で、長さ (N) は 1000 である必要があります。ここで何が起こっているのかわかりません。