plt.show() не открывает новое окно рисунка

Я пытаюсь показать некоторые графики, используя plt.show(). я получаю графики, показанные на консоли IPython, но мне нужно видеть каждую цифру в новом окне. Что я могу сделать ?


person ufdul    schedule 17.04.2017    source источник
comment
Просьба уточнить. Вы хотите, чтобы все окна, содержащие графики, открывались одновременно? Или вы просто хотите, чтобы каждый график отображался в окне, а не в консоли IPython?   -  person Rory Daulton    schedule 17.04.2017
comment
Я хочу видеть каждый график в отдельном окне, а не в консоли IPython.   -  person ufdul    schedule 17.04.2017
comment
потому что мне нужно сохранить их позже, используя цифры=[manager.canvas.figure для менеджера в matplotlib._pylab_helpers.Gcf.get_all_fig_managers()] Мне нужно, чтобы все фигуры открывались для каждого графика в отдельном окне фигуры   -  person ufdul    schedule 17.04.2017


Ответы (3)


Вы хотите ввести %matplotlib qt в консоль iPython. Это изменяет его только для сеанса, в котором вы находитесь. Чтобы изменить его на будущее, перейдите Tools > Preferences, выберите iPython Console > Graphics, затем установите Graphics Backend на Qt4 или Qt5. Это должно сработать.

person Seabody    schedule 17.04.2017

В блокноте попробуй

    import matplotlib.pyplot as plt
    %matplotlib

При таком вызове он должен выводить данные в отдельном окне. Есть также несколько вариантов %matplotlib в зависимости от вашей системы. Чтобы увидеть все доступные вам варианты, используйте

    %matplotlib -l

Вызов

    %matplotlib inline

будет снова рисовать графики в блокноте.

person pgrenholm    schedule 17.04.2017

Другой вариант — использовать plt.figure:

import matplotlib.pyplot as plt
plt.figure(1)                # the first figure
plt.subplot(211)             # the first subplot in the first figure
plt.plot([1, 2, 3])
plt.subplot(212)             # the second subplot in the first figure
plt.plot([4, 5, 6])
plt.show(block=False)

plt.figure(2)                # a second figure
plt.plot([4, 5, 6])          # creates a subplot(111) by default
plt.show(block=False)

plt.figure(1)                # figure 1 current; subplot(212) still current
plt.subplot(211)             # make subplot(211) in figure1 current
plt.title('Easy as 1, 2, 3') # subplot 211 title
plt.show(block=False)

(см.: https://matplotlib.org/users/pyplot_tutorial.html)

person paloma    schedule 21.09.2017