【发布时间】:2014-05-08 19:23:22
【问题描述】:
您好,请您帮帮我,如何在同一个网格中使用 .show(),也不是每次迭代都绘制新图。
import numpy as np
import matplotlib.pyplot as plt
import time
# Time step
n = 100 # Number of end-points
T = 1 # Length of [0,T] in time units
Delta = T/n
# Create a vector as for x-axis
x = np.arange(0, 1, .01)
# Create an empty vector W of the desired length
W = np.zeros(n, np.dtype(float))
# Z variable, N(0,1)
mu, sig = 0, 1
# The simulated path
for I in range(1, 4):
for i in range(1, len(W)):
W[i] = W[i-1] + np.random.normal(mu, sig) * np.sqrt(.01)
plt.subplot(2,2,2)
plt.plot(x,W)
time.sleep(2)
plt.show()
我绝对不明白,为什么如果我将 plt.show() 放在循环中 => 会有与循环范围内一样多的图。
我应该怎么做才能让 N 个图在一段时间后出现在同一个子图中?
谢谢。
【问题讨论】:
-
在 Sage 中组合图的一般方法是添加它们:
p = plot(sin); q = plot(cos); (p+q).show(). -
是的,但这是“plt.plot”,所以 plt.plot(x,w) + plot(cos) 返回错误。
-
我怀疑这确实是一个关于 matplotlib 绘图如何与 Sage 笔记本交互的问题。
标签: python loops plot ipython sage