matplotlib.pyplot使い方まとめ(随時更新中)
目次
使用するmoduleのインポート
import numpy as np import matplotlib.pyplot as plt %% matplotlib inline
図のレイアウト
データの用意
x = np.random.normal(50, 10, 1000) #平均値50,標準偏差10,サンプル数1000でガウス分布を作成 y = np.random.normal(50, 10, 1000)
図のサイズの変更
plt.figure(figsize=(5,5)) #デフォルトでは6.4*4.8 plt.scatter(x, y) plt.show()
タイトル、X軸の名前、Y軸の名前をつける
それぞれ、plt.title("タイトル名")、plt.xlabel("X軸の名前")、plt.ylabel("Y軸の名前")の指定できます。
plt.figure(figsize=(5,5)) #図の大きさを変更 plt.scatter(x,y) plt.title("Normal Distribution") plt.xlabel("X") plt.ylabel("Y") plt.show()
x軸,y軸の範囲の設定
plt.xlim(Xの最小値, Xの最大値) plt.ylim(Yの最小値, Yの最大値)
色の変更
cオプションを指定します。 引数として、以下のstring型の文字が取れます。色名の代わりに省略コードで指定することもできます。
省略コード | 色名 |
---|---|
'b' | blue |
'g' | green |
'r' | red |
'c' | cyan |
'm' | magenta |
'y' | yellow |
'k' | black |
'w' | white |
plt.scatter(x, y, c="red")
plt.show()
透過率の変更
alphaオプションを使います。0から1の値を指定します。0に近いほど透明になります。
plt.scatter(x, y, alpha=0.3) plt.savefig("changealpha.png") plt.show()
図の保存
plt.savefig(ファイル名)でできます。plt.show()より前に実行しないとうまく保存されないことに注意してください。
plt.plot(x, y) plt.savefig("picture.png") #picture.pngという名前のPNGファイルが現在いるディレクトリに保存されます。 plt.show() #plt.savefigとの順番に注意
グラフの作成
plt.plot(x, y) #x and y are array-like
plt.show()
標準偏差を表示
pltのerrorbarメソッドを使います。メソッドのデフォルトの設定では、エラーバーが縦棒となっているので、「工」の形にするために capthick, capsizeのオプション を 0 以上の値に指定しておく必要があります。
plt.plot(label,mean) plt.errorbar(label,mean,std,capsize=10,capthick=1) ##stdのところには、標準偏差あるいは誤差を入力します。 plt.title("mean+errorbar") plt.xlabel("category") plt.ylabel("number of people") plt.show()
ヒストグラムの作成
plt.hist(X,bins=10)
plt.show()
散布図の作成
基本
# データの用意 #平均値50,標準偏差10,サンプル数1000でガウス分布を作成 x = np.random.normal(50, 10, 1000) y = np.random.normal(50, 10, 1000) plt.scatter(x, y) plt.show()
複数の系列を重ねて散布図にする場合
plt.scatterを繰り返せば大丈夫です。散布図の色はデフォルトでは青色になっているため、系列ごとに色を変えましょう。
# データの用意 x1 = np.random.normal(100, 10, 1000) y1 = np.random.normal(50, 10, 1000) x2 = np.random.normal(0, 10, 1000) y2 = np.random.normal(50, 10, 1000) x3 = np.random.normal(50, 10, 1000) y3 = np.random.normal(100, 10, 1000) x4 = np.random.normal(50, 10, 1000) y4 = np.random.normal(0, 10, 1000) #散布図の作成 plt.figure(figsize=(5,5)) #図の大きさを設定 plt.scatter(x1, y1, c="red") plt.scatter(x2, y2, c="blue") plt.scatter(x3, y3, c="yellow") plt.scatter(x4, y4, c="green") plt.show()
凡例を載せる方法
plt.scatterのlabelオプションで系列の名前を指定し、plt.legend()で凡例を表示します。locオプションで凡例を表示する位置を指定することができます。
# データの用意 x1 = np.random.normal(10, 10, 1000) y1 = np.random.normal(0, 10, 1000) x2 = np.random.normal(-10, 10, 1000) y2 = np.random.normal(0, 10, 1000) plt.figure(figsize=(5,5)) #図の大きさを設定 plt.scatter(x1, y1, c="red", alpha=0.3, label="A") plt.scatter(x2, y2, c="blue", alpha=0.3, label="B") plt.legend(loc='upper left') #locとして以下が選べます。 # upper right,upper left,lower left,lower right,right,center #left,center right,lower center,upper center,center plt.show()
オプション
- fontsize = int 凡例のフォントの大きさ
- frameon = True/False 判例に枠をつけるかどうか。