Matplotlib subplot2grid не работает должным образом - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь закодировать простую симуляцию ядерного деления, и пока у меня есть симуляция самого ядра, работающего должным образом.Теперь я пытаюсь сделать второй график рядом с симуляцией, который сообщает пользователю, сколько энергии выводится из ядра.

С учетом сказанного я пытаюсь использовать subtplot2gridно я не могу найти правильные подходящие измерения для моей программы.Я также добавил патч plt.Rectangle в симуляцию ядра, которую я использую в качестве границ для своего ядра, я попытался запустить программу с патчем и без него, и кажется, что это проблема.Несмотря на то, что я хотел бы, чтобы этот прямоугольник остался, помогите мне найти правильные измерения и объяснить, почему размеры различаются с патчем и без него.

вот мой код:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

BOUNDS = [-20,20,-20,20]

fig = plt.figure()

ax = plt.subplot2grid((3,2),(0,0), rowspan = 2, colspan = 2, aspect = 'equal', autoscale_on = False,
                          xlim = (-51.2,51.2), ylim = (-50.4,50.4))
ax1 = plt.subplot2grid((3,2),(2,1))

ax1.set_xlabel('Time')
ax1.set_ylabel('Jouls')

rect = plt.Rectangle(BOUNDS[::2], #Creates the frame of the board (black rectangle)
                 BOUNDS[1] - BOUNDS[0],
                 BOUNDS[3] - BOUNDS[2],
                 ec='black', lw=2, fc='none')


ax.add_patch(rect)
ax.axis('off')
plt.show()

Если вы запустите программу, вы увидите следующее: enter image description here

Как я уже говорил, я бы хотел, чтобы график мощности был рядом с симуляцией, которая займет большую частьцифра примерно такая:

enter image description here

Буду признателен за любую помощь, спасибо!

1 Ответ

0 голосов
/ 01 июня 2018

Возможно, вы хотите использовать дополнительный столбец и позволить «основному» графику охватить все 3 строки?

ax = plt.subplot2grid((3,3),(0,0), rowspan = 3, colspan = 2, aspect = 'equal',
                      autoscale_on = False, xlim = (-51.2,51.2), ylim = (-50.4,50.4))
ax1 = plt.subplot2grid((3,3),(1,2))

enter image description here

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