matplotlibでグラフを複数書く
■はじめに
前回はmatplotlibでグラフを1つ書く方法を紹介しました。
今回はグラフを複数書く方法を紹介します。
■コード
import matplotlib.pyplot as plt
import numpy as np
t=np.arange(0,10,0.1)
y=np.sin(t)
y1=np.cos(t)
fig=plt.figure(figsize=(10,10))
ax1=plt.subplot2grid((2,2),(0,0))
ax1.plot(t,y)
ax1.set_ylabel('sin [mm]',fontsize=14)
ax1.set_xlabel('t [s]',fontsize=14)
ax1.set_title('test1')
ax2=plt.subplot2grid((2,2),(0,1))
ax2.plot(t,y,linestyle="dashed")
ax2.set_ylabel('sin [mm]',fontsize=14)
ax2.set_xlabel('t [s]',fontsize=14)
ax2.set_title('test2')
ax3=plt.subplot2grid((2,2),(1,0),colspan=2)
ax3.plot(t,y,linestyle='dashdot')
ax3.set_ylabel('sin [mm]',fontsize=14)
ax3.set_xlabel('t [s]',fontsize=14)
ax3.set_title('test2')
ax4=ax3.twinx()
ax4.plot(t,y1,linestyle="dashed",color='b')
ax4.set_ylabel('cos [mm]',fontsize=14)
plt.style.use('ggplot')
plt.subplots_adjust(wspace=0.3, hspace=0.3)
plt.show()
実行すると以下の画面がでてきます。
今回も例としてsinとcosをグラフにしました。
また下段のグラフは2軸のグラフになっています。
■買って良かったもの紹介
今回はモニターです。
非常にコスパ良くお勧めです。これまでいくつかモニターを使いましたが、今後はずっとEIZOのモニターを使おうと思うくらい気に入ってます。
■説明
fig=plt.figure(figsize=(10,10))
ax1=plt.subplot2grid((2,2),(0,0))
ax1.plot(t,y)
ax1.set_ylabel('sin [mm]',fontsize=14)
ax1.set_xlabel('t [s]',fontsize=14)
ax1.set_title('test1')
まず1行目のfig=plt.figure()でグラフを描画する領域を作ります。
そのあと2行目のsubplot2grid*1でグラフを書いていきます。
subplot2grid()のカッコ中の1つ目(2,2)は全体で何個のグラフを書くか示しています。(2,2)は2行×2列=4個のグラフを書くという意味になります。カッコ中の2つ目(0,0)はどの位置にグラフを書くかです。(0,0)は左上、(0,1)は右上、(1,0)は左下、(1,1)は右下になります。
また以下のようにcolspanで二行に渡ってグラフを書くことができます。
ax3=plt.subplot2grid((2,2),(1,0),colspan=2)
subplot2grid*2なので本来は左下だけですがcolspan=2とあるので左下から右下にかけて長いグラフになります。
またグラフを2軸にしたい場合は以下のように書きます。
ax4=ax3.twinx()
上記はax3に対しax4のグラフをx軸を共有して重ねるという意味で、ax3のy軸が左、ax4のy軸が右になります。
■おわりに
前回と今回でmatplotlibの基本的な使い方は紹介しました。次回はグラフの種類を紹介したいと思います。