Графика в Python 3.x - PullRequest
       54

Графика в Python 3.x

16 голосов
/ 30 июля 2010

В Python 2.6 я использовал matplotlib для создания простых графиков.Однако он несовместим с Python 3.1.

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

Ответы [ 9 ]

17 голосов
/ 04 августа 2010

Вы говорите, что хотите создать несколько простых графиков, но на самом деле не сказали, насколько простые или какие графики вам нужны.Пока они не слишком сложны, вы можете рассмотреть возможность использования Google Chart API .

например an example chart

Это имеет некоторые преимущества:создать URL, который описывает желаемую диаграмму, чтобы не было проблем с ее использованием из Python 3.x.Конечно, есть и недостатки: вам нужно иметь подключение к Интернету при создании диаграммы, и у вас могут не быть стилей диаграммы, которые вы использовали с matplotlib.

Если вы не хотите создавать URLНепосредственно для API диаграмм существует как минимум одна оболочка Python .Он не работает напрямую на Python 3.x, но запуск его через 2to3, кажется, успешно преобразует его.

11 голосов
/ 10 апреля 2011

С тех пор выпущена стабильная версия, поддерживающая Python 3: официальный анонс .

3 голосов
/ 04 января 2011

Я написал небольшой пример, который работает на python 3 и использует google chart api (как предложил Дункан, я написал решение после просмотра этого поста).

Это не идеально, поскольку он добавляет зависимость третьей стороне, которая может нарушить обратную совместимость в любое время, но графики хороши, и нет абсолютно никакой дополнительной зависимости от кода Python.Стоит учесть не «критически важный код».

Вы можете найти / скачать пример здесь .Вот график, который он генерирует из данных в XML-файле: alt text

# build the query with template parameters
query ="http://chart.apis.google.com/chart?chxl=0:__X_LABELS__&chxp=__X_LABELS_POS__&chxr=0,__MIN_TIME__,__MAX_TIME__|1,__MIN_WEIGHT__,__MAX_WEIGHT__&chxs=0,676767,11.5,0,lt,676767|1,676767,11.5,0,lt,676767&chxt=x,y&chs=800x300&cht=lc&chco=3072F3&chds=__MIN_WEIGHT__,__MAX_WEIGHT__&chd=t:__COMMASEP_WEIGHT__&chdl=Weight&chdlp=b&chls=2,4,1&chma=5,5,5,25&chtt=Your+Weight+Timeline"

[...]

# relace template with data
query = query.replace('__X_LABELS__', strXLabels)
query = query.replace('__X_LABELS_POS__', strXLabelsPos)
query = query.replace('__MIN_TIME__', str(min(lst_dateEpoch)))
query = query.replace('__MAX_TIME__', str(max(lst_dateEpoch)))

[...]

# use 'urllib.request' to download the data & write to file
sock = urllib.request.urlopen(query)
image_bytes = sock.read()
sock.close()

fh = open('Weight_GoogleGraphApi.png', 'wb')
fh.write(image_bytes)
fh.close()
1 голос
/ 03 мая 2012

Доступны бинарные файлы Matplotlib для Python 3.x (Windows). http://www.lfd.uci.edu/~gohlke/pythonlibs/

1 голос
/ 08 июня 2011

MathGL (библиотека графиков GPL) имеет интерфейс Python, который также работает с Python 3.

1 голос
/ 08 августа 2010

rpy2 предоставляет доступ к графическим возможностям R, а rpy2 становится совместимым с Python 3 (благодаря помощи Google для финансирования Грега в течение лета).

Код для текущей ветви разработкив очереди исправлений .

edit: rpy2 2.2.0 работает с Python 3.2

1 голос
/ 04 августа 2010

Может быть PyQwt ? Они утверждают, что 3.x совместимость. Я использовал только Qwt (C ++ lib PyQwt основан на), но я нашел его довольно полезным.

1 голос
/ 04 августа 2010

В качестве альтернативы установке Subversion для получения исходного кода на странице SF-файлов Numpy имеется последняя копия 1.5 в нескольких различных (для Windows) форматах:

http://sourceforge.net/projects/numpy/files/NumPy/1.5.0b1/

0 голосов
/ 06 августа 2010

Существует как минимум две графические библиотеки, использующие PyQt, а именно PyQwt и PyQtGraph. Я использую PyQwt с Python 2.6 уже несколько недель, и это очень удобно. Документация не велика, и большую часть времени мне нужно обращаться либо к документации Qwt, либо к примерам - хотя время, когда мне приходилось смотреть на документы, было немного и далеко, его ОЧЕНЬ легко , Я попытался построить его на Python 3.1 только сейчас, но безуспешно. Я не могу найти пакет tar для 5.2.1, который является единственной версией, совместимой с python 3.0, и в MacPorts для этого тоже ничего нет.

На python.org также есть довольно полный список библиотек для черчения http://wiki.python.org/moin/NumericAndScientific/Plotting

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...