0
をグループ化n
は、スレッドの数があるn-data.csv
という名前作成するには:Pythonのリストは、私がこの形式でいくつかのCSVファイルを持っている棒グラフ
elapsed,label
120,Step 01
260,Step 02
113,Step 03
100,Step 01
200,Step 02
103,Step 03
と私は、平均を取得したいと思います各スレッドごとにステップ(またはn
)、そして多くのこのようなグループ化された棒グラフとしてそれらをプロットしますhttp://matplotlib.sourceforge.net/examples/api/barchart_demo.html
私のコードを1つのファイル(Yet Another list csv file in Python Questionのおかげで)で正常に動作します:
#!/usr/bin/env python
import csv
import sys
import pylab as p
fig = p.figure()
ax = fig.add_subplot(1,1,1)
result = dict()
av = []
idx = []
for file in sys.argv[1:]:
for row in csv.DictReader(open(file)):
label = row['label']
elapsed = row['elapsed']
if label in result:
result[label].append(elapsed)
else:
result[label] = [elapsed]
for i in sorted (result.iterkeys()):
s = sum(int(v) for v in result[i])
a = s/float(len(result[i]))
av.append(a)
idx.append(i)
y = av
N = len(y)
ind = range(N)
ax.bar(ind, y, facecolor='#56A5EC',
align='center',label='1 Thread')
ax.set_ylabel('Average Response Time')
ax.set_title('Counts, by group',fontstyle='italic')
ax.legend()
ax.set_xticks(ind)
ax.grid(color='#000000', linestyle=':', linewidth=1)
group_labels = idx
ax.set_xticklabels(group_labels)
fig.autofmt_xdate()
p.grid(True)
p.show()
でこのスクリプトを実行すると、すべてのデータがav
(平均)とidx
(インデックス)にプッシュされ、すべてのデータがavとidxにアグリゲーションされます。
グループチャートを作成するには、どうすればav
とidx
を見つけ出すことができますか?私は試しました:
threads = file.split('-')[0]
for count in threads
for row in csv.DictReader(open(file)):
...
av['threads'].append(a)
idx['threads'].append(i)
を利用できません。 WDYT?どうもありがとう!
おかげ@jcfollower、いくつかのねじれや電源を入れた後、私はこれが動作するようになりました! –