ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Matplotlibで複数のグラフを重ねて書く

方法1 plotの引数に複数のグラフを指定する。

plot関数に続けて別のグラフを与えることで、重ねてグラフを表示します。

plot(t, y, '+-.', t, 2*y,'s-')
show()

方法2 hold(True)を使う。

hold(True)を指定することで、plot関数は前回にplotしたデータを破棄せずに、新しいグラフを重ねて表示します。デフォルトでTrueになってますので、単にplot関数を並べるだけで、重ねて表示されます。この動作が困る場合はhold(False)で重ね書き無しにできます。引数無しでholdを呼び出すと、TrueとFalseでトグルに変化します。Beginning Python Visualizationには、デフォルトの状態に頼ることなく、holde(True)もしくはhold(False)を記載しましょうと書かれています。

hold(True);
plot(t, y,'bx--')
plot(t, y + 1,'gx--')
plot(t, y - 1,'kx--')

サンプル画像

ソースファイル

# -*- coding: utf-8 -*-
from pylab import *

figure()
y = array([1,2,0,-1,1])
t = array([10,11,12,13,14])

plot(t, y, '+-.', t, 2*y,'s-')
savefig("example7.png")
show()

hold(True);
plot(t, y,'bx--')
plot(t, y + 1,'gx--')
plot(t, y - 1,'kx--')
savefig("example8.png")
show()


example7

example8