2010-03-24 3 views
47

Я бегу Mac OSX 10.5.8. Я установил matplotlib, используя macports. Я получаю некоторые примеры из Matplotlib галереи, как этот, без изменений:Графики Matplotlib не отображаются в Mac OSX?

http://matplotlib.sourceforge.net/examples/api/unicode_minus.html

я запускаю его, не получаю сообщение об ошибке, но изображение не появляется. В Linux Ubuntu я получаю его.

Вы знаете, что может быть неправильным здесь?

Благодаря

ответ

39

Я могу проверить это на моем конце. Чтобы исправить, вот что я сделал

sudo port install py25-matplotlib +cairo+gtk2 
sudo port install py26-matplotlib +cairo+gtk2 

Кроме того, нам нужно изменить бэкенд по умолчанию к GUI на основе одного.

Редактировать файл ~/.matplotlib/matplotlibrc, и добавить:

backend: GTKCairo 

Кроме того, вы можете попробовать следующее, что может позволить вам не нужны движки GTK или Каир. Edit ~/.matplotlib/matplotlibrc и добавить:

backend: MacOSX 

С портом с теми вариантами, установленными, это работает, как хорошо, но это не требует X11.


Кстати, ошибка, что я видел, было следующее:

/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/backends/__init__.py:41: UserWarning: 
Your currently selected backend, 'Agg' does not support show(). 
Please select a GUI backend in your matplotlibrc file ('/Users/wlynch/.matplotlib/matplotlibrc') or with matplotlib.use() 
(backend, matplotlib.matplotlib_fname())) 
+0

теперь он работает, спасибо большое! – flow

+1

Ты спасатель жизни. Проведя, как 3 часа, чтобы все мои порты были установлены, я, наконец, должен был проверить свои сценарии, и он не появлялся. Бесконечно благодарен. – rwilliams

+2

Который вы в конечном итоге используете? сервер MacOSX или GTKCairo? –

8

При попытке

plt.savefig('myfilename.png') 

вместо

plt.show() 

ли это сохранить правильное изображение с именем myfilename.png в текущем пути?

+0

Кроме того: это наводит на мысль (для «не показывать что вам может потребоваться файл matplotlibrc (сначала его искать) и изменить backend на tkAgg: http://newmediaandcapitalmarkets.org/component/content/article/68-how-i-got-matplotlib- рабочий на моих-м acbook.html. Какой питон вы используете? – ChristopheD

+0

Хорошая работа! – user1893354

3

просто добавить примечание,

Файл matplotlibrc не присутствовал на моей системе, и я должен был скачать копию с сайта matplotlib. Будущим пользователям, возможно, придется сделать то же самое.

+0

спасибо. вот что мне не хватало! – pocketfullofcheese

2

У меня был только python 2.5, и я не хотел устанавливать python 2.6 на свой Mac. Поэтому я использовал различные процедуры, упомянутые в следующей ссылке, чтобы решить эту проблему:

http://www.gtkforums.com/viewtopic.php?f=3&t=54928

Что, что один на самом деле нужно есть следующие шаги:

1) Поиск, где находится каталог «pygtk- 2.0.pc "и найдите его.Для примера шахта находится в следующем каталоге:

/Opt/местные/Библиотека/pkg-config

2) Добавление информации о пути к envirement переменной. Например:

PKG_CONFIG_PATH=/opt/local/lib/pkgconfig 
export PKG_CONFIG_PATH 

3) Загрузить файл с информацией о конфигурации "matplotlibrc" с сайта Matplotlib http://matplotlib.sourceforge.net/_static/matplotlibrc

4) Изменить бэкенд для MacOSX в файл и сохранить его

5) Скопируйте файл в каталог .matplotlib Вы можете найти каталог, в питона с помощью следующей команды:

import matplotlib 
matplotlib.get_configdir() 
2

Это то, что работает для меня:

brew install pkg-config 
brew link pkg-config 
brew install pygtk 
brew install freetype 
brew install libpng 

sudo ln -s /usr/local/Cellar/freetype/*/lib/pkgconfig/freetype2.pc /usr/local/lib/pkgconfig/freetype2.pc 

git clone [email protected]:matplotlib/matplotlib.git 
cd matplotlib 
python setup.py build 
python setup.py install 

Ссылки:

http://blog.caoyuan.me/2012/08/matplotlib-error-mac-os-x/ http://matplotlib.org/faq/installing_faq.html#install-from-git http://www.tapir.caltech.edu/~dtsang/python.html

+0

это в сочетании с помещением 'backend: tkAgg' в ~/.matplotlib/matplotlibrc работал для меня – user2079802

+0

Спасибо тонну! После всего мучительного роуминга в Google, наконец, это решило проблему для меня! – hmi

16

Это то, что работает для меня. Я только что изменил импорт из Matplotlib

import matplotlib 
matplotlib.use('TkAgg') 
import matplotlib.pyplot as plt 
+0

это также сработало для меня на Mac OS X внутри виртуальной среды –

43

У меня была такая же проблема, даже я мог видеть, как был создан новое окно приложения и сразу же исчез.

Простое решение - просто проверить, если у вас есть

plt.show() 

после сюжета

+1

Это был самый простой ответ, который сработал для меня. Мне не нужно было устанавливать какие-либо дополнительные пакеты или настраивать что-либо. Просто вызывается plot.show(), и изображение появилось. –

+1

Это работало для меня с той же проблемой на 'pylab'. Благодаря! –

+0

работал для меня, также. это необходимо из-за ошибки или намеренно, что вам нужно вызвать show()? – gph

-1

просто скопировать вставить это в терминале:

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc