2014-05-08 59 views
1

你好,请你帮我,如何.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个图在一段延迟后出现在同一个子图中?

谢谢。

Source

+0

在鼠尾草,用于组合曲线的一般方法是将它们加入到:'P =情节(SIN); q =绘图(cos); (P + Q).show()'。 –

+0

是的,但这是“plt.plot”,所以plt.plot(x,w)+ plot(cos)返回错误。 – kAldown

+0

这真是一个关于matplotlib图与Sage笔记本交互的问题,我怀疑。 – kcrisman

回答

0
import numpy as np 
import matplotlib.pyplot as plt 
import time 

@interact 
def _(f=(1,10,1)): 
    plt.cla() 
    n = 100 
    T = 1 
    dt = T/n 

    x = np.arange(1, step=dt) 

    W = np.zeros(n, np.dtype(float)) 

    t = np.arange(2.8,3.0,0.1) 
    l = np.sqrt(2*t*ln(ln(t))) 
    plt.plot(l) # <= add subplot 

    # Z variable, N(0,1) 
    mu, sig = 0, 1 

    for ITER in range(1, f+1): 
     for i in range(1, len(W)): 
      W[i] = W[i-1] + np.random.normal(mu, sig) * np.sqrt(dt) 
     plt.plot(x,W)  
    plt.show()