Измененные гистограммы Matplotlib не будут отображаться после модификации - PullRequest
1 голос
/ 24 сентября 2019

Я построил гистограмму и хотел бы изменить ее, а затем заново построить.Он не будет отображаться снова без переопределения определений объектов Figure и Axes.Я использую Jupyter Notebook, и я новичок в matplotlib, так что я не знаю, не понимаю ли это что-то в matplotlib, если это проблема с Jupyter Notebook или что-то еще.

Вот мой первый блок кода:

"""Here's some data."""
some_data = np.random.randn(150)
"""Here I define my `Figure` and `Axes` objects."""
fig, ax = plt.subplots()
"""Then I make a histogram from them, and it shows up just fine."""
ax.hist(some_data, range=(0, 5))
plt.show()

Вот вывод из моего первого блока кода:

Histogram_output_1

ВотМой второй блок кода:

"""Here I modify the parameter `bins`."""
ax.hist(some_data, bins=20, range=(0, 5))
"""When I try to make a new histogram, it doesn't work."""
plt.show()

Мой второй блок кода генерирует нет видимого вывода , что является проблемой .

Вот мой 3-й и последний блок кода:

"""But it does work if I define new `Figure` and `Axes` objects. 
Why is this? 
How can I display new, modified plots without defining new `Figure` and/or `Axes` objects? """
new_fig, new_ax = plt.subplots()
new_ax.hist(some_data, bins=20, range=(0, 5))
plt.show()

Вот вывод из моего 3-го и последнего блока кода:

Histogram_from_3rd_block

Заранее спасибо.

1 Ответ

0 голосов
/ 24 сентября 2019

Когда вы генерируете фигуру или ось, она остается доступной для визуализации или отображения, пока не будет использована для визуализации или отображения.Как только вы выполните plt.show() в своем первом блоке, ax станет недоступным.Ваш третий блок кода показывает график, потому что вы восстанавливаете фигуру и оси.

...