2016-06-24 3 views
1

Это мой первый вопрос о переполнении стека, поэтому, пожалуйста, извините меня, если форматирование этого вопроса не соответствует соглашениям сообщества переполнения стека.Построение нескольких строк на одну фигуру Python

Мой вопрос: как вы можете (если возможно) добавить строку к существующей фигуре Python с помощью pyplot? По сути, я хочу, чтобы выполнить компиляцию и запуск моего кода, и сгенерировать фигуру с линией на ней. Затем я хочу изменить некоторые данные в коде, скомпилировать и запустить код еще раз, а затем создать строку, сгенерированную из этого запуска кода, на уже существующую цифру.

fig=plt.figure(figsize=(20,10)) 
time= np.array(range(0, time_steps+1)) 
sigma_11=Q[:, :, :, 0] 
sigma_22=Q[:, :, :, 1] 
sigma_12=Q[:, :, :, 2] 
vel_x=Q[:, :, :, 3] 
vel_y=Q[:, :, :, 4] 
stiffness_mat=np.mat([[lamda+2*mu, lamda, 0], 
        [lamda, lamda+2*mu, 0], 
        [0, 0, 2*mu]]) 

Energ_P=np.zeros((time_steps+1)) 
Energ_K=np.zeros((time_steps+1)) 
Energy_tot=np.zeros((time_steps+1))  
    for n in range(0, time_steps+1): 
Energ_P[n]=(Energy_P(stiffness_mat, Q[:, :, n, 0:3])) 
Energ_K[n]=(Energy_K(Q[:, :, n, 3:5])) 
Energy_tot[n]=Energ_P[n]+Energ_K[n] 

sub1=fig.add_subplot(1, 2, 1) 
sub1.set_title('stress-time') 
sub1.plot(time*del_t, sigma_11[bar_cells_x, bar_cells_y, :], label='stress_1') 
sub1.plot(time*del_t, sigma_11[bar_cells_x/2, bar_cells_y/2, :], label='stress') 
sub1.set_ylabel('sigma_11 [Pa]') 
sub1.set_xlabel('time [s]') 
sub1.legend(loc='best', fontsize='10') 

plt.tight_layout() 
plt.show() 

Я еще не пробовал что-либо, чтобы решить эту проблему, сохраняя код запуска несколько раз. Однако, когда я это делаю, все, что я делаю, это генерация нескольких фигур.

+2

Что вы пробовали до сих пор? Где у вас проблемы? Давайте посмотрим код! – mwm314

+0

Возможный дубликат [Добавление произвольной строки в график matplotlib в ноутбуке ipython] (http://stackoverflow.com/questions/12864294/adding-an-arbitrary-line-to-a-matplotlib-plot-in-ipython- ноутбук) – Destrif

+0

Несмотря на то, что это ваш первый вопрос, вы должны прочитать и следовать соглашениям. Пожалуйста, см. [Справочная страница по задаваемым вопросам] (http://stackoverflow.com/help/mcve) –

ответ

1

Попробуйте добавить аргумент num на номер plt.figure. Другими словами, замените fig=plt.figure(figsize=(20,10)), с fig=plt.figure(num=1, figsize=(20,10)).

Из документов,

num : integer or string, optional, default: none

If not provided, a new figure will be created, and the figure number will be incremented.

Смежные вопросы