第5章 グラフ
1 折れ線グラフ
ここではある会の参加者を示すデータ kdg.csv を使用し、さまざまなグラフを表示してみましょう。kdf.ipynbを開きます。
import pandas as pd
df = pd.read_csv("kdg.csv", index_col = '回')
df
まず、データを折れ線グラフで表示してみましょう。
import seaborn as sns
sns.set_theme(font=["Meiryo"])
df.plot()
まず、seabornをインポートし、snsという別名を付けています。seaborn は matplotlib のグラフ表示をより綺麗に見せることが出来ます。 最初に日本語を表示できるようにsns.set_themeでフォント設定をしています。
そして、df.plot() で全列の折れ線グラフを表示します。
男性のみ表示するには引数yで列名を指定します。
df.plot(y="男性")
男性、女性の両方を表示するにはリストで指定します。
df.plot(y=["男性","女性"])
2 見栄えの設定
タイトルを指定するには matplotlib をインポートし指定します。
import matplotlib.pyplot as plt
df.plot(y="総数")
plt.title("参加人数")
x軸、y軸にラベルを指定します。
plt.xlabel('開催回')
plt.ylabel('人数')
タイトル、ラベルのフォントサイズを指定します。
plt.title("参加人数", fontsize=20)
plt.xlabel('開催回', fontsize=14)
plt.ylabel('人数', fontsize=10)
グラフそのもののサイズを指定するには、figsizeで(横,縦)を指定します。
df.plot(y="総数", figsize=(10,6))
色を変更するには、colorで色コードを指定します。
df.plot(y=["男性","女性"], color=['blue','red'])
3 点と線の描画
点を描画するには、plt.plotでmarkerを指定します。cには色を指定します(rは赤)。
df.plot(y=["男性","女性"])
x = 190
y = 30
plt.plot(x, y, c="r", marker="X", markersize=15)
縦線を描画するには、plt.axvline、横線を描画するには、plt.axhline を指定します。linestyleは線の描画方法です。
# 縦線
plt.axvline(x, c="r", linestyle="--")
# 横線
plt.axhline(y, c="r", linestyle="--")
4 棒グラフ
棒グラフは plot.bar() で指定します。 列の指定は折れ線グラフと同じです。最後の10回のみを棒グラフで表示します。
df2024 = df[df["日付"].dt.year == 2024]
df2024.plot.bar(y=["男性","女性"])
stacked=True で積み上げ棒グラフになります。
df2024.plot.bar(y=["男性","女性"], stacked=True)
水平棒グラフはbarhとします。
df2024.plot.barh(y=["男性","女性"])
5 円グラフ
円グラフは1つの列を割合で表示します。 まず男女の合計人数をDataFrame d に入れます。
s = df[["男性","女性"]].sum() # 合計
d = pd.DataFrame(s, columns=["人数"])
d
これをpie()関数で円グラフを表示します。
d["人数"].plot.pie()
この円グラフは開始位置が90度で、反時計回りです。 startangleとcounterclockを指定し、日本で一般的な上から時計回りの表示にします。
d["人数"].plot.pie(
startangle=90,
counterclock=False
)
割合を表示します。
d["人数"].plot.pie(
startangle=90,
counterclock=False,
autopct = "%1.0f%%"
)
フォントを大きくし、色を変更します。
d["人数"].plot.pie(
startangle=90,
counterclock=False,
autopct = "%1.0f%%",
textprops = {"fontsize":"16"},
colors = ["skyblue","#ff8888"]
)