Какие библиотеки доступны для создания красивых диаграмм и графиков в приложении Python?
Почему это закрыто? Это полезный вопрос. В любом случае, я рекомендую pip search plot и посмотрите, что получится. Я открыл для себя pygal, сделав это, и pygal выглядит великолепно.
Также стоит отметить, что этот вопрос появляется в начале поиска Google по запросу "charting python" - достаточная причина, чтобы открыть его снова.






Вы смотрели ChartDirector для Python?
Я не могу говорить об этом, но я использовал ChartDirector для PHP, и он довольно хорош.
ChartDirector хорошо работает с Python. Я регулярно использовал его для создания многострочных графиков.
NodeBox отлично подходит для создания необработанной графики.
Почему это хорошо? Вы им пользовались?
Да, я использовал dot_line_plot () в инструментах отчетности / статистики. Это красиво и просто. Смотрите главный ответ Родриго о Matplotlib и CairoPlot. Я также использую Matplotlib. Фактически, я им пользуюсь прямо сейчас.
Странные люди не уловили ваш ответ, но самый популярный на данный момент ответ.
Я думаю, что это могло бы получить больше голосов, если бы был минимальный пример. Ваш ответ станет бесполезным, когда ссылка будет мертва.
спасибо, в блоге уже есть много информации. и сам автор ответил здесь более подробно позже.
Вы также можете использовать pygooglechart, который использует Google Chart API. Это не то, что вы всегда хотели бы использовать, но если вам нужно небольшое количество хороших, простых диаграмм и всегда в сети, и особенно если вы все равно отображаете в браузере, это хороший выбор.
Предупреждение: диаграммы, которые позволяет создавать Google, довольно ограничены по размеру (ширина * высота <= 300 000 пикселей). Кроме того, Google Charts (а не Python API) захлебнется даже небольшими наборами данных. В остальном они великолепны.
Диаграммы изображений Google по-прежнему доступны, но не поддерживаются. Для получения дополнительной информации перейдите на developers.google.com/chart/image/?hl=nl
Вы также можете рассмотреть диаграммы google.
Технически это не Python API, но вы можете использовать его из Python, это достаточно быстро для кодирования, и результаты, как правило, выглядят хорошо. Если вы случайно используете свои участки в Интернете, это будет еще лучшим решением.
Я поддерживаю CairoPlot и очень горжусь, что он появился здесь. Конечно, matplotlib великолепен, но я считаю, что CairoPlot лучше выглядит. Так что для презентаций и веб-сайтов это очень хороший выбор.
Сегодня выпустил версию 1.1. Если интересно, посмотрите на CairoPlot v1.1
Обновлено: После долгой и холодной зимы CairoPlot снова развивается. Ознакомьтесь с новой версией на GitHub.
Выглядит неплохо, хочу попробовать. Есть ли планы создать установщик Windows для Python 2.6?
Для техподдержки проблем нет, я согласен с этим. Спасибо за комплимент: D
Просто добавил stackoverflow.com/questions/359727#520049, чтобы вы могли проголосовать против, если хотите.
Cairoplot действительно не очень хорошо работает с большими объемами данных (поправьте меня, если я ошибаюсь). Вы не можете добавлять метки к оси, чтобы суммировать hlabels или vlabels. В любом случае я не вижу возможности построить несколько линий на графике или контролировать используемые цвета. Я мог бы взломать скрипт ... перейти на matplotlib ...
Каждый должен игнорировать комментарий Джона, его очень легко пометить ось и определить используемые цвета ... Проверьте tests.py для примеров. В любом случае, спасибо за хорошую библиотеку.
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)
Для интерактивной работы Матплотлиб - зрелый стандарт. Он предоставляет 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
Извините, я также должен добавить, что matplotlib не только интерактивен - вы можете сохранить график / диаграмму в файл. Например, PNG, PDF или SVG.
Вам также следует рассмотреть 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
+1 за попытку создать практический пример.
Я использовал 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. Спасибо.
Я не уверен, почему этот закрылся. Он не призывает к пламенным войнам или мнениям и имеет ряд четких ответов: существует лишь несколько библиотек для построения графиков Python.