PythonのmatplotlibにMatlabのhold on
の明示的な同等のコマンドはありますか?すべてのグラフを同じ軸にプロットしようとしています。一部のグラフはfor
ループ内で生成され、これらはsu
およびsl
とは別にプロットされます。
import numpy as np
import matplotlib.pyplot as plt
for i in np.arange(1,5):
z = 68 + 4 * np.random.randn(50)
zm = np.cumsum(z) / range(1,len(z)+1)
plt.plot(zm)
plt.axis([0,50,60,80])
plt.show()
n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)
plt.plot(n,su,n,sl)
plt.axis([0,50,60,80])
plt.show()
最後にplt.show()
を呼び出すだけです:
import numpy as np
import matplotlib.pyplot as plt
plt.axis([0,50,60,80])
for i in np.arange(1,5):
z = 68 + 4 * np.random.randn(50)
zm = np.cumsum(z) / range(1,len(z)+1)
plt.plot(zm)
n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)
plt.plot(n,su,n,sl)
plt.show()
以下を使用できます。
plt.hold(True)
hold on
機能は、matplotlib.pyplot
でデフォルトでオンになっています。したがって、plt.plot()
の前にplt.show()
を呼び出すたびに、描画がプロットに追加されます。関数plt.plot()
の後にplt.show()
を起動すると、画像全体が再描画されます。
pyplot
ドキュメントを確認してください。完全を期すために、
import numpy as np
import matplotlib.pyplot as plt
#evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()