
Photo by
yajimasyoukai
[Python]集計したデータをグラフで見てみる
1.何をするのか
前回集計したデータ(各ジャンル毎に売れた本の冊数)をグラフに描画します。前回での集計したデータは辞書型をキーと値ごとにターミナル上で出力しましたが、今回はそれを棒グラフに描画していきます。
2.コード
from random import randint
import matplotlib.pyplot as plt
pdc_list = ["novel", "paperback", "business", "technical"]
#集計データを擬似的に作成
with open("sell_month.csv", "w", encoding="utf-8") as f:
f.write("{0},{1},{2}".format("日", "ジャンル", "冊数") + "\n")
for i in range(1, 32):
pdc_index = randint(0, len(pdc_list) - 1)
pdc_name = pdc_list[pdc_index]
book_num = randint(0, 100)
f.write("{0},{1},{2}".format(i, pdc_name, book_num) + "\n")
#集計処理
junle_num_dic = {}
with open("sell_month.csv", "r", encoding="utf-8") as f:
for i, row in enumerate(f):
#Headerスキップ
if i == 0: continue
row = row.split(",")
junle = row[1]
num = int(row[2].rstrip())
if junle not in junle_num_dic.keys():
junle_num_dic[junle] = num
else:
junle_num_dic[junle] += num
#グラフに描画するための処理
junle_list = []
num_list = []
for junle, num in junle_num_dic.items():
junle_list.append(junle)
num_list.append(num)
plt.bar(junle_list, num_list)
plt.suptitle("Total sales for this month")
plt.show()
3.実行結果