如何重复使用和重复绘制同一图块?

时间:2019-10-12 16:12:18

标签: python python-3.x jupyter-notebook

在Jupyter书上,使用matplotlib,我想制作一个包含一些图的图,显示它,添加更多图,然后再次显示它(旧图和新图)

相反,它只显示新的第二张图片上的新图

这是我的代码:

import numpy as np
%matplotlib inline  
import matplotlib.pyplot as plt

a=np.random.rand(10,)
b=np.random.rand(10,)

fig1 = plt.figure(1)
plt.plot(a,'b')
#plt.draw();
plt.show();

plt.figure(1)
plt.plot(b,'g--')
plt.show();

左边是我拥有的,右边是我想要的:

enter image description here


问题的上升方向已简化为最简单的形式,因此我可能没有解释我不想每次都重新创建图形(因为它可以根据需要配置约15行)

这是我不想要的代码示例:

import numpy as np
%matplotlib inline  
import matplotlib.pyplot as plt

a=np.random.rand(10,)
b=np.random.rand(10,)
c=np.random.rand(10,)

plt.plot(a, 'b')
plt.grid(True)

dig, ax = plt.subplots(1)
ax.plot(a,'b')
ax.plot(b,'g--')

dig, bx = plt.subplots(1)
bx.plot(a,'b')
bx.plot(b,'g--')
bx.plot(c,'r.')

plt.show()

这是我期望的一种伪代码:

a=np.random.rand(10,)
b=np.random.rand(10,)
c=np.random.rand(10,)

my_plot = plt.figure()
my_plot.grid(True)

my_plot.addplot(a,'b')
my_plot.show()

my_plot.addplot(a,'g--')
my_plot.show()

my_plot.addplot(a,'r.')
my_plot.show()

(我知道,这不是phyton / matplotlib,但是我敢肯定,像这样的优雅方法应该可以实现)

1 个答案:

答案 0 :(得分:0)

import numpy as np
%matplotlib inline  
import matplotlib.pyplot as plt

a=np.random.rand(10,)
b=np.random.rand(10,)
c=np.random.rand(10,)
d=np.random.rand(10,)

p = [a,b,c,d]
colors = ['r','g','b', 'g--']
for i in range(len(p)):
    fig, ax = plt.subplots(1)
    for j in range(i + 1):
        ax.plot(p[j], colors[j])

plot