Matplotlib при отладке в Pycharm: как отключить интерактивный режим?
Прежде всего, я работаю над консолью отладки Pycharm и хочу поставить подпись под моей диаграммой. Согласно этому ответу это может быть достигнуто путем:
plt.plot([2,5,1,2]
fig = plt.figure()
fig.text(.5, .05, "text", ha="center")
plt.show()
Тем не менее, это показывает мне сначала график, затем пустое окно (после ввода второй строки) и ничего позже.
Я понял, что это должно быть из-за интерактивного режима matplotlib, поэтому я отключил его, используя plt.ioff()
в сеансе отладки, после которого plt.isinteractive()
возвращается False
, Тем не менее это не меняет его поведение и показывает сюжет сразу после plt.plot(...)
команда.
Как ни странно когда я ставлю plt.ioff()
в моем сценарии это игнорируется и plt.isinteractive()
возвращается True
,
import matplotlib.pyplot as plt
plt.ioff()
plt.plot([1,2,3,4,5])
print(plt.isinteractive())
Моя системная информация:
- PyCharm CE 2017.3.2
- macOS Sierra 10.12.6
- Python 3.6.3 в среде анаконды
Кто-нибудь может воспроизвести это? Есть ли другой способ создания более сложных диаграмм из консоли отладки Pycharm? Я бы предпочел не менять свою среду разработки каждый раз, когда я хочу построить что-то более сложное.
1 ответ
Чтобы ответить на ваш вопрос: используйте другой (не интерактивный) бэкэнд:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
Ваш код, вероятно, не работает, потому что вы создали экземпляр фигуры после своего графика. Пытаться:
fig = plt.figure()
plt.plot([2,5,1,2]
fig.text(.5, .05, "text", ha="center")
plt.show()