Что такое хороший бэкэнд по умолчанию для matplotlib
Я решил настроить кастом matplotlibrc
и, следовательно, мне нужно выбрать бэкэнд для matplotlib
, Что является лучшим с точки зрения отсутствия необходимости устанавливать другие дополнительные пакеты?
Я склонен использовать matplotlib
с помощью ipython --pylab
, поэтому я хочу интерактивные окна на основе графиков (когда я не могу переключиться на Agg
).
я пробовал WXAgg
, но для этого требуется (достаточно разумно) WX.
2 ответа
И то и другое Agg
а также TkAgg
не требует никаких зависимостей кроме стандартной библиотеки Python.
У меня были некоторые проблемы с TkAgg
и многопоточность, так что если вам нужно только сохранить в файлы (а не plt.show()
), Я бы порекомендовал использовать Agg
вместо этого (просто замените его где TkAgg
появляется ниже).
Либо добавьте следующую строку в ваш ~/.config/matplotlib/matplotlibrc
:
backend: TkAgg
Или следующие строки в вашем файле Python:
import matplotlib
matplotlib.use('TkAgg') # MUST BE CALLED BEFORE IMPORTING plt
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,100)
y = np.sin(x)
plt.plot(x,y)
plt.show()
Насколько мне известно, PyQt5 - лучший бэкэнд для Matplotlib. Он позволяет вносить все изменения даже после запуска вашей программы. Чтобы использовать это,
import matplotlib
matplotlib.use('Qt5Agg')
поставьте это первым перед звонком
import matplotlib.pyplot as plt
NB вам необходимо установить PyQt5
для установки через pip запустите команду
pip install PyQt5
Я предпочитаю встроенные графики с помощью matplotlib графикам в отдельном окне, потому что это упрощает просмотр моих действий, когда я хорошо настраиваю код Python.
Python IDE для ученых (spyder) может выполнять встроенные черчения. Чтобы попробовать эту функцию, откройте терминал и введите:
sudo apt install python2.7 python-matplotlib spyder ipython
После запроса ipython в консоли IPython скопируйте / вставьте приведенный ниже код и нажмите клавишу Enter, чтобы запустить его.
import matplotlib.pyplot as plt
x, y = [-1, 12], [1, 4]
plt.plot(x, y, marker = 'o')
Текстовый редактор Atom с установленным пакетом Hydrogen для Atom также может выполнять встроенную печать. Я нахожу интерфейс Atom более сложным в настройке, чем Spyder, в котором встроенная печать с помощью matplotlib работает "из коробки". Я начал работать со встроенными графиками в Atom, потому что хотел использовать Atom для создания встроенных графиков и с другими языками программирования.