matplotlibの備忘録2
前回の「matplotlibの備忘録」の続きです。
グラフのタイトル 軸のラベル
データをリストで与えて表示するグラフです。グラフのタイトル 軸のラベルを表示してみました。
import matplotlib.pyplot as plt
import japanize_matplotlib
temperature = [5.5,8.3,12.5,15.9,19.0,23.5]
time_hour = [5,6,7,8,9,10]
# グラフを書く
plt.plot(time_hour, temperature)
# グラフのタイトル
plt.title("気温の変化")
# x軸のラベル
plt.xlabel("時刻")
# y軸のラベル
plt.ylabel("気温")
# 表示する
plt.show()

グラフのグリッド
グラフのグリッドを表示しました。
import matplotlib.pyplot as plt
import japanize_matplotlib
temperature = [5.5,8.3,12.5,15.9,19.0,23.5]
time_hour = [5,6,7,8,9,10]
# グラフを書く
plt.plot(time_hour, temperature,marker="X")
# グラフのタイトル
plt.title("気温の変化")
# x軸のラベル
plt.xlabel("時刻")
# y軸のラベル
plt.ylabel("気温")
# グリッドを表示する
plt.grid(True)
# 表示する
plt.show()

複数のグラフを表示する
複数のグラフを描画するときは以下のようにします。4つのグラフを生成しています。plt.subplot()の引数は(行, 列, 何番目か)となっており、上の例では2行2列のデータを生成し、順番にグラフを描いています。グラフのラベル、グラフのタイトル(グラフの下に表示しました)、グリッドの色と線を破線にしています。
import matplotlib.pyplot as plt
import numpy as np
#import japanize_matplotlib
plt.subplot(221)
x_1 = np.linspace(0, np.pi*2, 10000)
y_1 = np.sin(x_1)
plt.plot(x_1, y_1, label="sin")
plt.legend()
plt.title("sin", loc='center', y=-0.23)
plt.grid(color='gray', linestyle='--')
plt.subplot(222)
x_2 = np.linspace(0, np.pi*2, 10000)
y_2 = np.cos(x_2)
plt.plot(x_2, y_2, label="cos")
plt.legend()
plt.title("cos", loc='center', y=-0.23)
plt.grid(color='gray', linestyle='--')
plt.subplot(223)
x_3 = np.linspace(0, np.pi*2, 10000)
y_3 = np.sin(x_3)-np.cos(x_3)
plt.plot(x_3, y_3, label="sin-cos")
plt.legend()
plt.title("sin-cos", loc='center', y=-0.23)
plt.grid(color='gray', linestyle='--')
plt.subplot(224)
x_4 = np.linspace(0, np.pi*2, 10000)
y_4 = np.sin(x_4)+np.cos(x_4)
plt.plot(x_4, y_4, label="sin+cos")
plt.legend()
plt.title("sin+cos", loc='center', y=-0.23)
plt.grid(color='gray', linestyle='--')
plt.show()

グラフをリアルタイム表示(グラフを動かす)
plt.show()ではなくplt.pause()を使うのがポイントです。
import matplotlib.pyplot as plt import numpy as np # 描画領域 plt.subplots(1, 1) # y軸方向の描画幅を指定 plt.ylim((-1.1, 1.1)) # x軸:時刻 x = np.arange(0, 500, 1) # 周波数を高くしていく for Hz in np.arange(0.1, 10.1, 0.01): # sin波を取得 y = np.sin(2.0 * np.pi * (x * Hz) / 100) # グラフを描画する line, = plt.plot(x, y, color='blue') # 次の描画まで0.01秒待つ plt.pause(0.01) # グラフをクリア line.remove()





