文字に日本語を使用すると文字化けしたので、FONTの指定を追加。
Python matplotlib 説明図を書いてみる
https://qiita.com/damyarou/items/eafcf27aa1a7852d32e9
を見て、matplotlibって割とすごいことができるなと思い、どのような事をしているのか見ても、私レベルの知識では???でした。
他にもいろいろサンプルプログラムがあるのですが、これもちょっと難しいので私が理解出来る範囲でいろいろやっています。
一番短いプログラムのグラフ
ドキュメント
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html
Y = 15, 30, 3, 25
X = 0, 1, 2, 3 (x座標のリストを省略)
import matplotlib.pyplot as plt
plt.plot([15,30,3,25]) #リストを直接記載、x座標のリストを省略
# plt.plot([0,1,2,3],[15,30,3,25]) #x座標のリストを省略しない場合
plt.show()
基本的なグラフ
# グラフ y=x^2
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5, 5, 100, endpoint=True)
# x = np.arange(-5,5 + 0.1, 0.1) #見た目は同じグラフが出来る
y = x ** 2
plt.plot(x, y) #実線
# plt.plot(x, y, 'bo') #ドット(青色の丸)
# plt.plot(x, y, 'g^') #ドット(緑色の▲)
plt.show()
円グラフ
ドキュメント
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.pie.html
# 円グラフ
import matplotlib.pyplot as plt
a = ([1,2,3,20,5,6,7,8,9,10])
a[3] = 4 #20を4に変更
plt.pie(a) #円グラフ
plt.show()
# グラフn1の角度
# 360 / (a[0] + ・・・ + a[n]) * a[n1]
文字
ドキュメント
https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.text
# Text
import matplotlib.pyplot as plt
font = {'family':'IPAGothic'} #日本語Fontを指定
plt.text(0.5, 0.5, '日本語', color="#FF0000", fontsize=20, alpha=0.5, rotation=-45, **font) #alpha=透明度
plt.text(0.2, 0.2, 'ABC', color="#FF0000", fontsize=20, alpha=0.5, rotation=45,ha='center',va='center') #ha=文字の基準位置(横方向)、va=文字の基準位置(縦方向)
plt.text(0.4, 0.1, 'Text',fontsize=12,fontweight='bold',ha='left',va='bottom',color='k')
plt.text(0.1, 0.8, 'matplotlib',fontsize=12,fontweight='bold',ha='left',va='center',color='k',bbox=dict(facecolor='b', alpha=0.2))
plt.show()
罫線
ドキュメント
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.grid.html
import matplotlib.pyplot as plt
import numpy as np
xmax = 4
ymax = 3
scalewidth = 0.2
font = {'family':'IPAGothic'} #日本語Fontを指定
plt.xlim([0,xmax])
plt.ylim([0,ymax])
plt.xlabel('X座標', **font)
plt.ylabel('Y座標', **font)
plt.xticks(np.arange(0,xmax+scalewidth,scalewidth))
plt.yticks(np.arange(0,ymax+scalewidth,scalewidth))
plt.grid(color='#FF0000',linestyle='solid')
plt.title('日本語', **font)
plt.show()
矢印プロット(ベクトル)
ドキュメント
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.quiver.html
import matplotlib.pyplot as plt
plt.quiver(0.5,0.5,0.5,0.5) #(x,y,u,v) x,y-始点座標、u,v-ベクトルの向き
# plt.quiver(0.5,0.5,0.5,0.5,color='red')
plt.show()
寸法
上記の(Python matplotlib 説明図を書いてみる)@damyarouさんを参考にしました。
import matplotlib.pyplot as plt
import matplotlib.ticker as tick
arst='<->,head_width=3,head_length=10'
x1=0.1; y1=0.5; x2=0.5; y2=y1
plt.annotate('',
xy=(x1,y1), xycoords='data',
xytext=(x2,y2), textcoords='data', fontsize=0, #fontsize 矢印の大きさ
arrowprops=dict(arrowstyle=arst,connectionstyle='arc3',facecolor='#333333',edgecolor='#333333',shrinkA=0,shrinkB=0))
plt.text(0.3,0.55,'0.4',color="#FF0000",ha='center',va='center',fontsize=20,rotation=0)
plt.show()
Python matplotlibでグラフを作る(超初心者向け)-2
https://qiita.com/ty21ky/items/2b1403317e769cccabac
参考
サンプルプログラムが沢山あります。
https://matplotlib.org/xkcd/examples/index.html
https://matplotlib.org/gallery/index.html
MATPLOTLIB
https://matplotlib.org/xkcd/api/pyplot_api.html?highlight=plot#matplotlib.pyplot.plot
1.科学技術計算のために Python を始めよう。
1.4.Matplotlib: 作図
http://www.turbare.net/transl/scipy-lecture-notes/intro/matplotlib/matplotlib.html