Красивые графики и диаграммы на Python [закрыто]

130

Какие библиотеки доступны для создания красивых диаграмм и графиков в приложении Python?

sverrejoh
источник
22
Я не уверен, почему этот был закрыт. Он не призывает к пламенным войнам или мнениям и имеет ряд четких ответов: существует лишь несколько библиотек для построения графиков Python.
Alex B
7
Почему это закрыто? Это полезный вопрос. В любом случае, я рекомендую pip search plotпосмотреть, что получится. Я открыл для себя pygal, сделав это, и pygal отлично выглядит.
Mark E. Haase
Также стоит отметить, что этот вопрос появляется в начале поиска Google по запросу "диаграмма питона" - достаточная причина, чтобы открыть его снова.
Джордж Лунд
Этот вопрос полезный, закрывать его не стоит. Другие варианты включают боке и PyX
atomh33ls

Ответы:

50

Я поддерживаю CairoPlot и очень горжусь, что он появился здесь. Конечно, matplotlib великолепен, но я считаю, что CairoPlot лучше выглядит. Так что для презентаций и веб-сайтов это очень хороший выбор.

Сегодня выпустил версию 1.1. Если интересно, посмотрите на CairoPlot v1.1

РЕДАКТИРОВАТЬ: После долгой и холодной зимы CairoPlot снова развивается. Ознакомьтесь с новой версией на GitHub .

Родриго
источник
2
Выглядит неплохо, хочу попробовать. Есть ли планы создать установщик Windows для Python 2.6?
monkut
Для техподдержки проблем нет, я согласен с этим. Спасибо за комплимент: D
Родриго
Просто добавил stackoverflow.com/questions/359727#520049, чтобы вы могли проголосовать против, если хотите.
VonC
1
Cairoplot действительно не очень хорошо работает с большими объемами данных (поправьте меня, если я ошибаюсь). Вы не можете добавлять метки к оси, чтобы суммировать hlabels или vlabels. Я все равно не вижу возможности построить несколько линий на графике или контролировать используемые цвета. Я мог бы взломать сценарий ... перейти на matplotlib ...
Джон
Каждый должен игнорировать комментарий Джона, его очень легко обозначить осью и определить используемые цвета ... Проверьте tests.py для примеров. В любом случае, спасибо за хорошую библиотеку.
Дэниел Магнуссон,
38

Для интерактивной работы Matplotlib - зрелый стандарт. Он предоставляет API в стиле объектно-ориентированного программирования, а также интерактивный API в стиле Matlab.

Chaco - это более современная библиотека графиков от сотрудников Enthought. Он использует библиотеку векторной графики Enthought Kiva и в настоящее время работает только с Wx и Qt с OpenGL на подходе (Matplotlib имеет бэкенды для Tk, Qt, Wx, Cocoa и многих типов изображений, таких как PDF, EPS, PNG и т. Д.). Основными преимуществами Chaco являются его скорость по сравнению с Matplotlib и его интеграция с Enthought Traits API для интерактивных приложений.

Барри Уарк
источник
2
Я согласен с тем, что из всех API-интерфейсов matplotlib действительно кажется наиболее зрелым и многофункциональным (а также все еще поддерживается и развивается). Просто перейдите в его «галерею», чтобы увидеть различные примеры (с соответствующим исходным кодом): matplotlib.sourceforge.net/gallery.html . Однако я бы сказал, что его API, ну ... сложный - названия методов сводят меня с ума :) Говоря о "сложных" и простых примерах - это сообщение в блоге очень помогло мне начать с matplotlib: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Тимур
Извините, я также должен добавить, что matplotlib не только интерактивен - вы можете сохранить график / диаграмму в файл. Например PNG, PDF или SVG.
Тимур
18

Вы также можете использовать pygooglechart , который использует Google Chart API . Это не то, что вы всегда хотели бы использовать, но если вам нужно небольшое количество хороших, простых диаграмм и всегда в сети, и особенно если вы все равно отображаете в браузере, это хороший выбор.

Тони Мейер
источник
7
Предупреждение: диаграммы, которые позволяет создавать Google, довольно ограничены по размеру (ширина * высота <= 300 000 пикселей). Кроме того, Google Charts (а не Python API) захлебнется даже небольшими наборами данных. В остальном они великолепны.
Пэт Ноц
1
Диаграммы изображений Google по-прежнему доступны, но не поддерживаются. Для получения дополнительной информации перейдите на developers.google.com/chart/image/?hl=nl
ndequeker
15

Вы не упомянули, какой формат вывода вам нужен, но reportlab хорош для создания диаграмм как в формате pdf, так и в растровом (например, png) формате.

Вот простой пример гистограммы в формате png и pdf:

from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart

d = Drawing(300, 200)

chart = VerticalBarChart()
chart.width = 260
chart.height = 160
chart.x = 20
chart.y = 20
chart.data = [[1,2], [3,4]]
chart.categoryAxis.categoryNames = ['foo', 'bar']
chart.valueAxis.valueMin = 0

d.add(chart)
d.save(fnRoot='test', formats=['png', 'pdf'])

альтернативный текст http://i40.tinypic.com/2j677tl.jpg

Примечание: изображение было преобразовано в jpg хостом изображения.

serbaut
источник
2
Если возникает исключение «RenderPMError: Can't setFont (Times-Roman), пропускающие файлы T1?» (как у меня) в d.save в приведенном выше коде - Решение - загрузить и извлечь reportlab.org/ftp/fonts/pfbfer.zip в каталог reportlabs / fornts
Шекхар
+1 за попытку создать практический пример.
vmassuchetto
6

CairoPlot

Elmarco
источник
2
Почему это хорошо? Вы им пользовались?
Ник
Да, я использовал dot_line_plot () в инструментах отчетности / статистики. Это красиво и просто. Посмотрите главный ответ Родриго о Matplotlib и CairoPlot. Я также использую Matplotlib. Фактически, я использую его прямо сейчас.
elmarco
Странные люди не уловили ваш ответ, но это самый популярный в настоящее время ответ.
pihentagy
Я думаю, что это могло бы получить больше голосов, если бы был минимальный пример. Ваш ответ станет бесполезным, когда ссылка будет мертвой.
Мартин Тома
спасибо, в блоге уже есть много информации. и сам автор ответил здесь более подробно позже.
elmarco 08
6

Я использовал pychart и подумал, что это очень просто.

http://home.gna.org/pychart/

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

Кажется, он не обновлялся через несколько лет, но это работает!

tullaman
источник
4

Вы изучали ChartDirector для Python ?

Я не могу говорить об этом, но я использовал ChartDirector для PHP, и он неплохой.

Томас Оуэнс
источник
ChartDirector хорошо работает с Python. Я регулярно использовал его для создания многострочных графиков.
pwdyson
4

Если вам нравится использовать gnuplot для построения графиков, вам следует рассмотреть Gnuplot.py . Он предоставляет объектно-ориентированный интерфейс для gnuplot, а также позволяет передавать команды непосредственно в gnuplot. К сожалению, сейчас активно не развивается.

mhagger
источник
3

Я фанат PyOFC2: http://btbytes.github.com/pyofc2/

Это просто пакет, который позволяет легко генерировать данные JSON, необходимые для Open Flash Charts 2, которые очень красивы. Ознакомьтесь с примерами по ссылке выше.

Гурно
источник
0

Вы также можете рассмотреть диаграммы Google .

Технически это не Python API, но вы можете использовать его из Python, его достаточно быстро кодировать, и результаты, как правило, выглядят хорошо. Если вам случится использовать свои участки в Интернете, это будет еще лучшим решением.

Тайлер
источник
0

PLplot - это кроссплатформенный программный комплекс для создания научных графиков. Они не очень красивые (бросаются в глаза), но выглядят достаточно хорошо. Взгляните на несколько примеров (как исходный код, так и изображения).

Базовая библиотека PLplot может использоваться для создания стандартных графиков xy, полулогарифмических графиков, логарифмических графиков, изолиний, трехмерных поверхностных графиков, сеточных графиков, гистограмм и круговых диаграмм. Он работает в Windows (2000, XP и Vista), Linux, Mac OS X и других Unix.

Кристиан Чиупиту
источник