2014-02-27 3 views
7

Я использую Python 2.7.6 32-бит с Matplotlib 1.3.1.
Когда я использую бэкенд по умолчанию, как в этом примере, фигура показана:Matplotlib: WebAgg backend не показывает цифры

import matplotlib.pyplot as plt 
plt.plot(range(10)) 
plt.show() 


Когда я пытаюсь использовать WebAgg, в MPL загрузке страницы автоматически, но без каких-либо цифр:

import matplotlib 
matplotlib.use('webagg') 
import matplotlib.pyplot as plt 
plt.plot(range(10)) 
plt.show() 


Я протестировал этот код на Windows и Ubuntu, используя Firefox, Chrome и IE, без каких-либо успехов ...
Может кто-нибудь помочь, пожалуйста? Заранее спасибо!

+1

Ваш код отлично работает для меня. Граф всплывает в окне браузера. У вас есть другие ошибки? –

+1

Моя рекомендация - попробовать переустановить Python и matplotlib. Обычно это затруднит проблемы с записью, такие как ваши. –

+0

Используя VirtualBox, я попробовал чистую установку Ubuntu 12.10 (поставляется с включенным Python 2.7.3), затем установлен NumPy, Matplotlib и его зависимости. Но все же окно браузера WebAgg показало только ссылку «Рисунок 1» без каких-либо цифр. Щелчок по ссылке не дает никаких результатов. – alissonmuller

ответ

1

После долгих поисков и испытаний, я в конечном итоге с помощью пип удалить Matplotlib, а затем установите его (с помощью команды --upgrade, просто чтобы быть уверенным):

pip uninstall matplotlib 
pip install matplotlib --upgrade 

И это сработало! Теперь я вижу графики WebAgg в окне браузера! Возможно, я не устанавливал Matplotlib правильно ...

Спасибо за предложения!

1

Обновить до последней версии разработки, Matplotlib-1.4.x. Установить в virtualenv с помощью

$ pip install -e [email protected]:matplotlib/matplotlib.git 

Затем команды OP работают на всех платформах. Существует также новый embedded webagg example in the matplotlib master branch on GitHub, который работает на всех моих системах (Windows-7x64, Ubuntu-14.14 и Xubuntu-14.14).

Используя команды OP с Matplotlib-1.3.1, я получаю смешанные результаты в зависимости от используемой платформы. На одной машине (Ubuntu-14,14) Я был в состоянии показать фигуру, если я использовал sudo для выполнения команд в OP в:

$ sudo python 
>>> import matplotlib 
>>> matplotlib.use('webagg') 
>>> import matplotlib.pyplot as plt 
>>> plt.plot(range(10)) 
>>> plt.show() 

Это работает как в virtualenv и в версии распределения Ubuntu из Matplotlib.

В то время как на виртуальной машине VMWare Player (Xubuntu-14.14 размещен на Windows-7х64) я смог показать фигуру с помощью команды Ор в безsudo. На третьей (Windows-7x64) машине я все еще не могу получить цифру, используя команды OP как с правами администратора, так и без них. Я также изменил matplotlib.rcParams['webagg.port'] на 8080 и 8000, но это также не сработало.

В Ubuntu-14.14 с использованием Matplotlib устанавливается из репозитория дистрибутива, вы увидите следующее отслеживающий:

File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_webagg.py", line 381, in get 
'matplotlib.png'), 'rb') as fd: 
IOError: [Errno 2] No such file or directory: '/usr/lib/pymodules/python2.7/matplotlib/mpl-data/images/matplotlib.png' 

Это не имеет ничего общего с тем, почему изображение не появляется; эта ошибка появляется только на машинах Linux, в которых папка mpl-данных не находится там, где matplotlib.backends.backend_webagg ожидает, что она будет, но фактически находится в /usr/share/matplotlib/. В частности, backend_webagg ищет файл matplotlib.png, который он использует в качестве значка для вкладки веб-браузера, и фактически Tornado все равно будет обслуживать страницу, даже если он не находит этот файл, хотя, к сожалению, он по-прежнему вызывает эту ошибку.

Если вы используете virtualenv, вы не увидите ошибку favicon.

Использование Matplotlib-1.3.1 без sudo на Ubuntu-14.14 и на машине Windows-7x64 я получаю ту же самую ссылку «цифра 1», которую @allisonmuller получал в комментарии выше.

0

Просто добавив к ответу Марка Mikovski, я обнаружил, что если добавить символическую ссылку следующим образом

кд /usr/lib/pymodules/python2.7/matplotlib/

пер -s/USR/доля/Matplotlib/MPL-данных MPL-данных

это, кажется, решить этот вопрос

Смежные вопросы