おぼえがき

おぼえがき、独り言、etc...

pythonでmatplotlib使ってグラフ描いてみる

とりあえず「matplotlib」をインストールする(pip install matplotlib)

マットプロットリブと読むらしい

 

グラフ描画用のソース書く

【初心者向け】Matplotlib入門 | Pythonを使ってデータを可視化してみよう! | AI Academy Media

上記ソースをお借りして動作確認すると、ちゃんとグラフが出た。

f:id:tirimen00:20220220201313p:plain

動かすとわかるけど、描画するのにそこそこ時間がかかる。こんなもんなのか?

 

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-5, 5, 0.1) #-5から5まで0.1区切りで配列を作る
y = np.sin(x) #配列xの値に関してそれぞれsin(x)を求めてy軸の配列を生成

plt.plot(x,y) # この場合のplot関数の第一引数xは、x軸に対応し、第二引数のyがy軸にあたります。
plt.show()

 

ただimportして、x,y軸の値を設定して表示しているだけみたい。

棒グラフにするには、plt.bar()

円グラフにするには、plt.pie()みたいに使い分けをするみたい。

データの設定もそれぞれでちょっとずつ違いそうなので、自分が作りたいグラフを決めてから、そのグラフの描画方法を調べるとかしたほうが良さそう。

画像保存もできるみたいだから、画像生成してどこかに埋め込みみたいなこともできそう。

Webページにグラフを表示する時に使うとなると、毎回一時フォルダに画像保存して、その画像をページに埋め込みみたいなことしないといけないのかな?それは流石に面倒だから別の方法がありそう

 

複数グラフ描画もできる

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)

x = np.arange(-5, 5, 0.1) #-5から5まで0.1区切りで配列を作る
y = np.sin(x) #配列xの値に関してそれぞれsin(x)を求めてy軸の配列を生成

ax1.plot(x,y) # この場合のplot関数の第一引数xは、x軸に対応し、第二引数のyがy軸にあたります。
ax2.plot(x,y) # この場合のplot関数の第一引数xは、x軸に対応し、第二引数のyがy軸にあたります。
plt.show()

f:id:tirimen00:20220220204118p:plain

figure.add_subplot()を使う

引数は、add_subplot(行,列,何番目)なので、

上記例では、1行目の2列あるうちの1番目と2番目に描画してね、としたので

そのとおり描画されている。