データの確認
1 2 3 4 5 6 |
import pandas as pd import matplotlib.pyplot as plt import japanize_matplotlib df = pd.read_excel("graph.xlsx") df.head() |
棒グラフX | 棒グラフY | 折れ線グラフX | 折れ線グラフY | 円グラフ | ヒストグラム・箱ひげ図 | 散布図X | 散布図Y | |
---|---|---|---|---|---|---|---|---|
0 | 千葉 | 10000 | 1 | 2 | 10 | 3 | 10 | 20 |
1 | 東京 | 10000 | 3 | 2 | 10 | 5 | 30 | 50 |
2 | 茨城 | 12000 | 5 | 5 | 20 | 1 | 20 | 30 |
3 | 栃木 | 7000 | 7 | 10 | 8 | 4 | 30 | 70 |
4 | 群馬 | 8000 | 9 | 6 | 2 | 6 | 10 | 15 |
棒グラフ
1 2 3 4 5 |
plt.title("棒グラフ") plt.xlabel("棒グラフX軸") plt.ylabel("棒グラフY軸") plt.bar(df["棒グラフX"], df["棒グラフY"]) plt.show() |
matplotlibを用いて棒グラフを作成する際にはplt.barで作成してplt.show()でグラフを表示します。グラフの種類を変更したい場合はbarの部分を変更し, 必要な引数を与えるだけで変更可能です。
plt.title, plt.xlabel, plt.ylabelについてはグラフのタイトル, x軸のラベル名, y軸のラベル名のためのコードのためなくても問題ないです。
折れ線グラフ
1 2 3 4 5 |
plt.title("折れ線グラフ") plt.xlabel("折れ線グラフX軸") plt.ylabel("折れ線グラフY軸") plt.plot(df["折れ線グラフX"], df["折れ線グラフY"]) plt.show() |
円グラフ
1 2 3 4 |
label = ["千葉", "東京", "茨城", "栃木", "群馬", "埼玉", "神奈川", "山梨", "静岡", "北海道"] plt.title("円グラフ") plt.pie(df["円グラフ"], labels = label, startangle=90, autopct="%.1f%%") plt.show() |
円グラフは他のグラフと少し違いますが, labelsでリストからラベルを取得し記述, startangleで出力する角度を設定し, グラフの中に割合を記述するためにautopctを使用しています。
ヒストグラム
1 2 3 4 5 |
plt.title("ヒストグラフ") plt.xlabel("ヒストグラムX軸") plt.ylabel("ヒストグラムY軸") plt.hist(df["ヒストグラム・箱ひげ図"]) plt.show() |
箱ひげ図
1 2 3 4 5 |
plt.title("箱ひげ図") plt.xlabel("箱ひげ図X軸") plt.ylabel("箱ひげ図Y軸") plt.boxplot(df["ヒストグラム・箱ひげ図"]) plt.show() |
散布図
1 2 3 4 5 |
plt.title("散布図") plt.xlabel("散布図X軸") plt.ylabel("散布図Y軸") plt.scatter(df["散布図X"], df["散布図Y"]) plt.show() |
複数のグラフの書き方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
plt.figure(figsize=(30, 20)) plt.subplot(2,3,1, title = "棒グラフ", xlabel = "棒グラフX軸", ylabel = "棒グラフY軸") plt.bar(df["棒グラフX"], df["棒グラフY"]) plt.subplot(2,3,2, title = "折れ線グラフ", xlabel = "折れ線X軸", ylabel = "折れ線グラフY軸") plt.plot(df["折れ線グラフX"], df["折れ線グラフY"]) plt.subplot(2,3,3,title = "円グラフ") label = ["千葉", "東京", "茨城", "栃木", "群馬", "埼玉", "神奈川", "山梨", "静岡", "北海道"] plt.pie(df["円グラフ"], labels = label, startangle=90, autopct="%.1f%%") plt.subplot(2,3,4, title = "ヒストグラム", xlabel = "ヒストグラムX軸", ylabel = "ヒストグラムY軸") plt.hist(df["ヒストグラム・箱ひげ図"]) plt.subplot(2,3,5,title = "箱ひげ図", xlabel = "箱ひげ図X軸", ylabel = "箱ひげ図Y軸") plt.boxplot(df["ヒストグラム・箱ひげ図"]) plt.subplot(2,3,6, title = "散布図", xlabel = "散布図X軸", ylabel = "散布図Y軸") plt.scatter(df["散布図X"], df["散布図Y"]) |
複数のグラフを同時に表示したい場合にはplt.subplotを用います。1つ目の引数と2つ目の引数でグラフの構成を設定します。今回は2と3のため2行3列の計6グラフを表示するようになっています。3つ目の引数では何番目に表示するかを設定しています。
また単体で表示している際はplt.title, plt.xlabel, plt.ylabelを用いてグラフのタイトル, x軸のラベル名, y軸のラベル名を表示していましたが複数表示の際はsubplotsの引数で設定しています。
参考
Matplotlib: Python plotting — Matplotlib 2.0.2 documentation