Matplotlib перестал работать после обновления до 1.1.0 - PullRequest
3 голосов
/ 11 марта 2012

Я пытаюсь запустить matplotlib 1.1.0 под Ubuntu 11.10. Ранее у меня был установлен и работал matplotlib 1.0.1, но мне были нужны некоторые функции из версии 1.1.0 (и меня это раздражало, что вся документация была для другой версии, отличной от моей), поэтому я решил обновить.

Теперь я не могу показать графики.

Я удалил все, что имел из репозитория пакетов, и установил версию 1.1.0 из источника . Я прочитал FAQ по установке , но подсказки там не помогли. Я получаю следующий вывод из предложенной им процедуры устранения неполадок, но без графика:

$HOME=/home/tomas
CONFIGDIR=/home/tomas/.matplotlib
matplotlib data path /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data
loaded rc file /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data/matplotlibrc
matplotlib version 1.1.0
verbose.level helpful
interactive is False
platform is linux2
Using fontManager instance from /home/tomas/.matplotlib/fontList.cache
backend agg version v2.2

Что мне нужно сделать, чтобы это работало?

Обновление:
Следуя некоторым советам по устранению неполадок в комментариях, я могу сообщить, что на самом деле показывает графиков, которые не работают.

Выполнение следующего скрипта выводит png с ожидаемым графиком, но не отображает окно печати. ​​

from matplotlib import pyplot as plt
plt.plot([1, 2, 3])
plt.savefig('testfig.png')
plt.show()

1 Ответ

3 голосов
/ 02 апреля 2012

Когда вы импортируете pyplot, он должен установить бэкэнд, и он может установить его как неинтерактивный, что объясняет поведение, которое вы видите.Посмотрите, какой бэкэнд используется, запустив plt.get_backend()

Чтобы установить бэкэнд, вы должны выполнить эти команды до импорта pyplot:

import matplotlib
matplotlib.use(your_backend)

где

your_backend in set(["FLTKAgg", "GTK", "GTKAgg", "GTKCairo", "macosx",
                    "QTAgg", "QT4Agg", "TkAgg", "WX", "WXAgg"])

Чтобы сделать эту постоянную настройку, добавьте имя бэкэнда (без кавычек) в файл ~/.matplotlib/matplotlibrc, как в следующем примере:

backend       : WXAgg
...