Как повторно использовать и нанести на карту более одного раза один и тот же сюжет? - PullRequest
1 голос
/ 12 октября 2019

Используя 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()

(я знаю, это не фитон / matplotlib, но я уверен, что что-то элегантное, как это должно быть возможно)

1 Ответ

0 голосов
/ 12 октября 2019
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...