首页 > 解决方案 > 如何重复使用和多次绘制相同的情节

问题描述

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

相反,它只在新的第二张图片上向我显示了新的情节

这是我的代码:

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();

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

在此处输入图像描述


问题的好处已经简化为最简单的形式,因此我可能没有解释我不想每次都重新创建这个数字(因为它有大约 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,但我确信像这样优雅的东西应该是可能的)

标签: pythonpython-3.xjupyter-notebook

解决方案


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])

阴谋


推荐阅读