# 描画用ライブラリ読み込み
import matplotlib.pyplot as plt
# 日本語表示用ライブラリ(matplotlibで日本語を使用したい場合)
import japanize_matplotlib
# グラフをinline表示可能にする
%matplotlib inline
# 解像度を上げてinline表示する
%config InlineBackend.figure_format = 'retina'
# 皆さんの回答リスト
reply_lec2 = ['文字列と入出力','文字列と入出力','文字列と入出力','文字列と入出力','文字列と入出力','Python基礎の基礎',
'文字列と入出力','Python基礎の基礎','文字列と入出力','Python基礎の基礎','文字列と入出力','文字列と入出力',
'文字列と入出力','文字列と入出力','Python基礎の基礎','文字列と入出力','while文による繰り返し',
'ブール型と論理演算子','文字列と入出力','文字列と入出力','Python基礎の基礎','条件式と分岐','Python基礎の基礎',
'文字列と入出力','条件式と分岐','文字列と入出力']
reply_lec3 = ['Python基礎の基礎','while文による繰り返し','ブール型と論理演算子','文字列と入出力','while文による繰り返し'
,'関数の定義','条件式と分岐','while文による繰り返し','条件式と分岐','条件式と分岐','ブール型と論理演算子',
'オブジェクトとリスト','条件式と分岐','ブール型と論理演算子','ブール型と論理演算子','関数の定義','条件式と分岐',
'ブール型と論理演算子','while文による繰り返し','文字列と入出力','while文による繰り返し','関数の定義',
'while文による繰り返し','while文による繰り返し','条件式と分岐','タプルとコレクション','while文による繰り返し',
'while文による繰り返し']
reply_lec4 = ['辞書オブジェクト','辞書オブジェクト','辞書オブジェクト','タプルとコレクション','辞書オブジェクト',
'辞書オブジェクト','演習','while文による繰り返し','タプルとコレクション','辞書オブジェクト','オブジェクトとリスト',
'オブジェクトとリスト','辞書オブジェクト','オブジェクトとリスト','条件式と分岐','オブジェクトとリスト',
'辞書オブジェクト','演習','演習','辞書オブジェクト','関数の定義','関数の定義','関数の定義','タプルとコレクション',
'while文による繰り返し','関数の定義','タプルとコレクション','辞書オブジェクト']
reply_lec5 = ['タプルとコレクション','演習','タプルとコレクション','タプルとコレクション','辞書オブジェクト',
'オブジェクトとリスト','演習','タプルとコレクション','タプルとコレクション','演習','演習','タプルとコレクション',
'演習','演習','演習','演習','タプルとコレクション','別教材','タプルとコレクション','タプルとコレクション','演習',
'演習','タプルとコレクション','タプルとコレクション','タプルとコレクション','別教材']
# 回答項目リスト
li = ['Python基礎の基礎','文字列と入出力','条件式と分岐','ブール型と論理演算子','while文による繰り返し','関数の定義',
'オブジェクトとリスト','辞書オブジェクト','タプルとコレクション','演習', '別教材']
# ヒストグラム表示用辞書データ作成(第2講分)
d_lec2 = {}
for k in li:
d_lec2[k] = reply_lec2.count(k)
# ヒストグラム表示用辞書データ作成(第3講分)
d_lec3 = {}
for k in li:
d_lec3[k] = reply_lec3.count(k)
# ヒストグラム表示用辞書データ作成(第4講分)
d_lec4 = {}
for k in li:
d_lec4[k] = reply_lec4.count(k)
# ヒストグラム表示用辞書データ作成(第5講分)
d_lec5 = {}
for k in li:
d_lec5[k] = reply_lec5.count(k)
plt.figure(figsize=(12, 16))
plt.subplot(4, 1, 1)
plt.title('第2講レポート提出時', fontsize=18)
plt.bar(d_lec2.keys(), d_lec2.values(), color='m', zorder=2)
plt.ylabel('人数', fontsize=16)
plt.ylim(0, 18)
plt.xticks(rotation=20)
plt.grid(zorder=1)
plt.text(0.94, 0.9, f'n={sum(d_lec2.values())}', fontsize=16, transform=plt.gca().transAxes)
plt.subplot(4, 1, 2)
plt.title('第3講レポート提出時', fontsize=18)
plt.bar(d_lec3.keys(), d_lec3.values(), color='y', zorder=2)
plt.ylabel('人数', fontsize=16)
plt.ylim(0, 18)
plt.xticks(rotation=20)
plt.grid(zorder=1)
plt.text(0.94, 0.9, f'n={sum(d_lec3.values())}', fontsize=16, transform=plt.gca().transAxes)
plt.subplot(4, 1, 3)
plt.title('第4講レポート提出時', fontsize=18)
plt.bar(d_lec4.keys(), d_lec4.values(), color='c', zorder=2)
plt.ylabel('人数', fontsize=16)
plt.ylim(0, 18)
plt.xticks(rotation=20)
plt.grid(zorder=1)
plt.text(0.94, 0.9, f'n={sum(d_lec4.values())}', fontsize=16, transform=plt.gca().transAxes)
plt.subplot(4, 1, 4)
plt.title('第5講レポート提出時', fontsize=18)
plt.bar(d_lec5.keys(), d_lec5.values(), color='g', zorder=2)
plt.ylabel('人数', fontsize=16)
plt.ylim(0, 18)
plt.xticks(rotation=20)
plt.grid(zorder=1)
plt.text(0.94, 0.9, f'n={sum(d_lec5.values())}', fontsize=16, transform=plt.gca().transAxes)
plt.tight_layout();