ここで学習すること
折れ線や棒グラフなど、様々なグラフの作成の仕方を学習します。
グラフ作成ライブラリのmatplotlib.pyplotをimport matplotlib.pyplot as plt でインポートすることでpltで使用できます。
各グラフを作成するメソッドを紹介します。
線グラフ .plot()
線グラフは plt.plot(x, y, marker=”マーカーの種類”, markerfacecolor=”マーカーの色”, linestyle=”線のスタイル”, color=”線の色”)) で作成します。
マーカーの種類
円:o 四角:s 五角形:p 星:* プラス:+ ダイアモンド:D
マーカーの色
青:b 緑:g 赤:r シアン:c マゼンタ:m 黄色:y 黒:k 白:w
線の種類
実線:- 破線:– 破線(点入り):-. 点線: :
棒グラフ .bar()
棒グラフは plt.bar(x, y, tick_label=[ラベルのリスト]) で作成します。
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y = [23, 45, 22, 12, 21, 8]
labels = [“hyogo”, “osaka”, “kyoto”, “shiga”, “nara”, “wakayama”]
plt.bar(x, y, tick_label=labels)
plt.show()
積み上げ棒グラフ .bar()
棒グラフを積み上げるときは plt.bar(x, y2, bottom=y1) でボトムにする値y1を bottom=y1 で指定します。
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6]
y1 = [13, 23, 36, 78, 12 , 54
y2 = [34, 21, 56, 22, 78, 56]
pref = [“hyogo”, “osaka”, “kyoto”, “shiga”, “nara”, “wakayama”]
棒グラフを作成しラベルを設定します。
plt.bar(x, y1, tick_label=pref)
y1の上にy2を積み上げます
plt.bar(x, y2, bottom=y1)
系列ラベルを設定します
plt.legend((“y1”, “y2”))
plt.show()
=>
ヒストグラム .hist()
散布図はplt.hist()で作成できます。
import numpy as np
import matplotlib.pyplot as plt
乱数を作成します
np.random.seed(0)
data = np.random.randn(10000)
plt.hist(data)
plt.show()
散布図 plt.scatter()
散布図はplt.scatter()で作成できます。
import numpy as np
import matplotlib.pyplot as plt
乱数を作成します
np.random.seed(0)
x = np.random.choice(np.arange(100), 100)
y = np.random.choice(np.arange(100), 100)
plt.scatter(x, y)
plt.show()
=>
値の大きさに応じてプロットサイズを変更する
plt.scatter(x, y, s=マーカーのサイズ) でマーカーのサイズを変更できます。
np.random.seed(0)
x = np.random.choice(np.arange(100), 100)
y = np.random.choice(np.arange(100), 100)
z = np.random.choice(np.arange(100), 100)
zの大きさに応じてプロットサイズを変更します
plt.scatter(x, y, s=z)
plt.show()
=>
値の大きさに応じてマーカーの色の濃淡を変える
plt.scatter(x, y, c=マーカーのサイズ, cmap=”色”) でマーカーの色の濃淡を変えられます。
plt.scatter(x, y, c=z, cmap=”Blues”)
カラーバーを表示します
plt.colorbar()
=>
色の支持は以下になります。
“Reds”: 赤
“Blues”: 青
“Greens”: 緑
“Purples”: 紫
円グラフ plt.pie()
円グラフは
plt.pie(list型のデータ, labels = ラベルのリスト)
axis(“equal”)
で作成できます。 axis(“equal”)がないと楕円になってしまいます。
import matplotlib.pyplot as plt
data = [60, 20, 10, 5, 3, 2]
pref = [“hyogo”, “osaka”, “kyoto”, “shiga”, “nara”, “wakayama”]
plt.pie(data, labels=pref)
plt.axis(“equal”)
plt.show()
=>
一部のパイを強調する
一部のパイを強調するには plt.pie(data, labels=labels, explode=協調する度合いのリスト) とします。
import matplotlib.pyplot as plt
data = [60, 20, 10, 5, 3, 2]
pref = [“hyogo”, “osaka”, “kyoto”, “shiga”, “nara”, “wakayama”]
ここではkyotoを0.1だけ協調します。数値を大きくすると強調(抜き出し具合)が大きくなります
explode = [0, 0, 0.1, 0, 0, 0]
plt.pie(data, labels=pref, explode=explode)
plt.axis(“equal”)
plt.show()
=>