Hold не работает для pyplot
У меня проблема с использованием pyplot. Я новичок в Python, так что извините, если я делаю очевидную ошибку.
После того, как я построил что-то, используя pyplot, он показывает график, но когда я попытаюсь добавить, например, ylabel, он не будет обновлять текущий график. Это приводит к новому графику с только ylabel, ранее не введенной информации. Так что мне кажется, что это проблема с распознаванием текущего графика / оси, но ishold дает истинное утверждение.
Моя установка Python 2.7 в Python(x,y). Проблема возникает как в IDE Spyder, так и в консоли Qy IPython. Однако этого не происходит в обычной консоли IPython (которая, по определению, не является интерактивной, но все включено при использовании show(). Когда я отключаю интерактив в консоли Spyder/Qt, она ничего не показывает после использования show () команда).
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
Out[2]: [<matplotlib.lines.Line2D at 0x78ca370>]

plt.ylabel('test')
Out[3]: <matplotlib.text.Text at 0x5bd5990>

plt.ishold()
Out[4]: True
matplotlib.get_backend()
Out[6]: 'module://IPython.kernel.zmq.pylab.backend_inline'
Надеюсь, у кого-то из вас есть вклад. Благодарю.
1 ответ
Это одна из причин, по которым InlineBackend должен вести себя не так, как другие бэкэнды, иначе вы будете иметь вид утечки памяти. Вы должны держать явный указатель на число и / или набор matplotlib close_figure
в False
в конфиг. Обычно pyplot
это слой совместимости для Matlab для удобства, попробуйте научиться делать, используя объектно-ориентированный способ.
fig,ax = subplots()
ax.plot(range(4))
ax.set_ylabel('my label')
...