いろんなものはつながっている

pythonで複数グラフを表示してみる

複数のグラフを描画してみる

複数のグラフを描画するには、最初にfigureを生成し、そのfigureにsubplotで描画エリアを作成し、その描画エリアにplotしていく。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
import scipy.signal as signal

fig = plt.figure()
ax0 = fig.add_subplot(211)
ax1 = fig.add_subplot(212)

sample_rate = 400
duration = 1.0
t = np.arange(sample_rate * duration)/sample_rate
sig = signal.chirp(t, 20.0, t[-1], 100)
sig1 = sig * (1.0 + 0.5 * np.sin(2.0*np.pi*3.0*t))
sig2 = sig * (1.0 + 0.5 * np.sin(2.0*np.pi*6.0*t))

ax0.plot(t, sig1, 'r', linewidth=1)
ax0.set_title('title1')
ax0.plot(t[::10], sig[::10], "r.")

ax1.plot(t, sig2, 'b', linewidth=2)
ax1.set_title('title2')

plt.tight_layout()
plt.savefig('sample.jpg')

for文で描画エリアを生成してみる

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
import scipy.signal as signal

fig = plt.figure()

plot_row = 2
plot_col = 3

#サンプル信号
x=np.linspace(0,2*np.pi,50)
sig = np.sin(x)
y=[]
for idx in range(plot_row*plot_col):
    y += [sig+np.random.randn(50)*0.2]

for r in range(plot_row):
    for c in range(plot_col):
        plot_index = r*plot_col + c + 1
        ax = fig.add_subplot(plot_row, plot_col, plot_index)
        ax.set_title('title' + str(plot_index))
        ax.set_ylabel("Y Label")
        ax.set_xlabel("X Label")
        ax.plot(x, y[plot_index-1])
fig.tight_layout()  
plt.savefig('subplot.jpg')
plt.show()

subplot_

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

スポンサード リンク

カテゴリー

スポンサード リンク