Красивые графики и диаграммы на Python

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

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

Alex B 12.05.2012 16:57

Почему это закрыто? Это полезный вопрос. В любом случае, я рекомендую pip search plot и посмотрите, что получится. Я открыл для себя pygal, сделав это, и pygal выглядит великолепно.

Mark E. Haase 26.07.2012 03:53

Также стоит отметить, что этот вопрос появляется в начале поиска Google по запросу "charting python" - достаточная причина, чтобы открыть его снова.

George Lund 16.10.2013 16:23

Этот вопрос полезный, закрывать его не стоит. Другие варианты включают боке и PyX

atomh33ls 17.10.2013 16:48
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
130
4
112 185
15

Ответы 15

Вы смотрели ChartDirector для Python?

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

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

pwdyson 08.02.2010 14:02

NodeBox отлично подходит для создания необработанной графики.

КаирПлощадь

Почему это хорошо? Вы им пользовались?

Nick 10.11.2009 13:24

Да, я использовал dot_line_plot () в инструментах отчетности / статистики. Это красиво и просто. Смотрите главный ответ Родриго о Matplotlib и CairoPlot. Я также использую Matplotlib. Фактически, я им пользуюсь прямо сейчас.

elmarco 10.11.2009 13:47

Странные люди не уловили ваш ответ, но самый популярный на данный момент ответ.

pihentagy 07.02.2012 17:47

Я думаю, что это могло бы получить больше голосов, если бы был минимальный пример. Ваш ответ станет бесполезным, когда ссылка будет мертва.

Martin Thoma 07.04.2013 12:40

спасибо, в блоге уже есть много информации. и сам автор ответил здесь более подробно позже.

elmarco 08.04.2013 05:36

Чако от задумался - еще один вариант

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

Предупреждение: диаграммы, которые позволяет создавать Google, довольно ограничены по размеру (ширина * высота <= 300 000 пикселей). Кроме того, Google Charts (а не Python API) захлебнется даже небольшими наборами данных. В остальном они великолепны.

Pat Notz 17.09.2008 08:18

Диаграммы изображений Google по-прежнему доступны, но не поддерживаются. Для получения дополнительной информации перейдите на developers.google.com/chart/image/?hl=nl

ndequeker 02.11.2012 19:58

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

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

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

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

Обновлено: После долгой и холодной зимы CairoPlot снова развивается. Ознакомьтесь с новой версией на GitHub.

Выглядит неплохо, хочу попробовать. Есть ли планы создать установщик Windows для Python 2.6?

monkut 22.10.2008 09:03

Для техподдержки проблем нет, я согласен с этим. Спасибо за комплимент: D

Rodrigo 06.02.2009 14:00

Просто добавил stackoverflow.com/questions/359727#520049, чтобы вы могли проголосовать против, если хотите.

VonC 06.02.2009 15:06

Cairoplot действительно не очень хорошо работает с большими объемами данных (поправьте меня, если я ошибаюсь). Вы не можете добавлять метки к оси, чтобы суммировать hlabels или vlabels. В любом случае я не вижу возможности построить несколько линий на графике или контролировать используемые цвета. Я мог бы взломать скрипт ... перейти на matplotlib ...

Jon 30.10.2009 23:40

Каждый должен игнорировать комментарий Джона, его очень легко пометить ось и определить используемые цвета ... Проверьте tests.py для примеров. В любом случае, спасибо за хорошую библиотеку.

Daniel Magnusson 13.11.2009 11:05

gantt_chart () не работает для этого набора данных? tg_p = [(0, 12), (0, 5), (0,13)] tg_v = ['0', '1', '2', '3', '4', '5', '6 ',' 7 ',' 8 ',' 9 ',' 10 ',' 11 ',' 12 ',' 13 ',' 14 '] tg_h = [' test ',' test2 ',' test3 '] tg_c = [(1.0, 0.0, 0.0), (1.0, 0.7, 0.0), (0.0, 1.0, 0.0)] CairoPlot.gantt_chart ('gantt-123', tg_p, 600, 300, tg_h, tg_v, tg_c)

m1k3y3 11.11.2010 15:35

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

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

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

Timur 13.04.2012 00:15

Извините, я также должен добавить, что matplotlib не только интерактивен - вы можете сохранить график / диаграмму в файл. Например, PNG, PDF или SVG.

Timur 13.04.2012 00:25

Вам также следует рассмотреть PyCha http://www.lorenzogil.com/projects/pycha/

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

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

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

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

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

Вы не упомянули, какой формат вывода вам нужен, но 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 хостом изображения.

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

Shekhar 30.11.2009 14:54

+1 за попытку создать практический пример.

vmassuchetto 16.09.2011 23:52

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

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

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

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

См. Встраивание Open Flash Chart для WHIFF http://aaron.oirt.rutgers.edu/myapp/docs/W1100_1600.openFlashCharts и встраивание amCharts для WHIFF тоже http://aaron.oirt.rutgers.edu/myapp/amcharts/doc. Спасибо.

Другие вопросы по теме