2015-11-24 29 views
3

我正在绘制一条线并在循环中更新它。当我在执行过程中的某个点上平移图形,然后在交互式matplotlib窗口中单击“重置原始视图”时,从开始缩放/平移它的那一刻起,我会回到绘图状态。有没有办法看到情节的全部范围呢?更妙的是,有没有办法告诉matplotlib在这个操作之后继续更新视图?“重置原始视图”不显示整个图形

python 3.4.3matplotlib 1.4.3

import matplotlib 
matplotlib.use('Qt4Agg') 
import matplotlib.pyplot as plt 
import numpy as np 

fig, ax1 = plt.subplots() 
ax2 = ax1.twinx() 
values_v = [] 
values_i = [] 
ln1, = ax1.plot(values_i, values_v, color='green') 
plt.ion() 
plt.show() 

for i in range(40): 
    scopevals = [i, i+2+np.random.rand()] 

    values_v.append(scopevals[0]) 
    values_i.append(scopevals[1]) 

    ln1.set_data([values_i, values_v]) 

    ax1.relim() 
    ax1.autoscale_view(True,True,True) 

    plt.pause(1) 
+0

我一直在寻找一个答案。你有没有找到什么? –

+0

@NikolausDemmel不幸的是,我还没有找到解决方案 – alkamid

+0

感谢您的答复。我发现的唯一情况是清除轴并重新添加所有的图和补丁,这是一个解决方法,但需要额外的手动记帐。 –

回答

-1

我遇到的问题,当我在同一图中显示不同的图像。

清除苍老的身影帮我:

plt.figure(1) #the figure you re working with 
plt.clf() #clear figure 
plt.imshow(self.sample_image) # show new picture 

和原来的观点应该重新工作。 干杯 Andy