Досить графіки та діаграми в Python [закрито]


130

Які доступні бібліотеки для створення гарних діаграм та графіків у додатку Python?


22
Я не впевнений, чому цього закрили. Він не запрошує вогняних воєн чи думок, і має набір чітких відповідей: є лише кілька бібліотек, які планують Python.
Алекс Б

7
Чому це закрито? Це корисне питання. У будь-якому разі, моя рекомендація - pip search plotподивитися і подивитися, що виходить. Роблячи це, я виявив пігал, і пігал виглядає чудово.
Марк Е. Хааз

Також варто відзначити, що це питання підходить до пошуку Google за "графічним пітоном" - достатньо підстав, щоб відкрити його знову.
Джордж Лунд

Це питання корисне, його не слід закривати. Інші варіанти включають боке і Pyx
atomh33ls

Відповіді:


50

Я є тим, хто підтримує CairoPlot, і я дуже пишаюся, що він з’явився тут. Безумовно, matplotlib - це чудово, але я вважаю, що CairoPlot краще виглядає. Отже, для презентацій та веб-сайтів це дуже вдалий вибір.

Сьогодні я випустила версію 1.1. Якщо вам цікаво, перевірте це на CairoPlot v1.1

EDIT: Після довгої і холодної зими CairoPlot знову розробляється. Ознайомтеся з новою версією на GitHub .


2
Виглядає добре, я хотів би спробувати. Будь-який план зробити інсталятор Windows для python 2.6?
monkut

Немає проблем із підтримкою, як я згоден на це. Дякуємо за комплімент: D
Родріго

Просто додав stackoverflow.com/questions/359727#520049 для вас downvote, якщо ви хочете.
VonC

1
Cairoplot насправді не так добре працює для великої кількості даних (виправте мене, якщо я не прав). Ви не можете додавати мітки до осі, щоб узагальнити хлабелі або vlabel. Я не можу бачити на графіку кілька ліній або мати якийсь контроль над використовуваними кольорами. Я міг би зламати сценарій ... перехід до matplotlib ...
Джон

Кожен повинен ігнорувати коментар Джона, його дуже легко позначити вісь та визначити кольори, які використовуються ... Перевірте тести на тести. У будь-якому випадку, дякую за приємний ліб.
Даніель Магнуссон

38

Для інтерактивної роботи Matplotlib є зрілим стандартом. Він надає API в стилі OO, а також інтерактивний API стилю Matlab.

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


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

Вибачте, я також мушу додати, що matplotlib є не лише інтерактивним - ви можете фактично зберегти сюжет / діаграму у файл. Для екс. PNG, PDF або SVG.
Тимур

18

Ви також можете використовувати pygooglechart , який використовує API Google Chart . Це не те, що ви завжди хотіли б використовувати, але якщо ви хочете невелику кількість хороших, простих, графіків і завжди в Інтернеті, і особливо якщо ви все одно відображаєтесь у браузері, це хороший вибір.


7
Слово попередження, графіки, які дозволяє Google створювати, мають досить обмежений розмір (ширина * висота <= 300 000 пікселів). Крім того, Google Charts (не API Python) подаватиметься навіть з невеликими наборами даних. Інакше вони чудові.
Пат Нотц

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'])

alt текст http://i40.tinypic.com/2j677tl.jpg

Примітка. Хост зображення перетворив зображення в jpg.


2
Якщо ви отримаєте виняток "RenderPMError: Can't setFont (Times-Roman) не вистачає файлів T1?" (як я потрапив) на d.save у наведеному вище коді - Рішення полягає в завантаженні та вилученні reportlab.org/ftp/fonts/pfbfer.zip у каталозі reportlabs / fornts
Shekhar

+1 за зусилля щодо створення практичного прикладу.
vmassuchetto

6

2
Чому це добре? Ви його використовували?
Нік

Так, я використовував dot_line_plot () в інструментах звітності / статистики. Це досить і просто. Дивіться головний відгук Родріго про Matplotlib та CairoPlot. Я також використовую Matplotlib. Насправді я зараз його використовую.
elmarco

Дивні люди не знайшли вашої відповіді, але відповідь, яка зараз проголосувала вгорі.
pihentagy

Я думаю, що це отримало б більше результатів, якби був мінімальний приклад. Ваша відповідь стане марною, коли посилання загине.
Мартін Тома

дякую, у блозі вже багато інформації. а сам автор відповів тут більш детально пізніше.
elmarco

6

Я використовував pychart і вважав, що це дуже просто.

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

Це все рідний пітон і не має навантаження залежностей. Я впевнений, що matplotlib чудовий, але я б завантажував і встановлював цілими днями, і мені просто хочеться однієї діаграми кору!

Здається, це не було оновлено через кілька років, але так, це працює!


4

Ви заглянули в ChartDirector для Python ?

Я не можу про це говорити, але я використовував ChartDirector для PHP, і це досить добре.


ChartDirector добре працює з Python. Я регулярно використовував це для створення багаторядкових сюжетів.
pwdyson


4

Якщо ви хочете використовувати gnuplot для побудови графіків, вам слід розглянути Gnuplot.py . Він забезпечує об'єктно-орієнтований інтерфейс до gnuplot, а також дозволяє передавати команди безпосередньо gnuplot. На жаль, він більше не активно розвивається.




3

Я шанувальник PyOFC2: http://btbytes.github.com/pyofc2/

Це просто пакет, який дозволяє легко генерувати дані JSON, необхідні для відкритих флеш-графіків 2, які дуже красиві. Перегляньте приклади за посиланням вище.



0

Ви також можете розглянути діаграми google .

Технічно не API пітона, але ви можете використовувати його з python, його досить швидко кодувати, і результати, як правило, виглядають непогано. Якщо ви випадково використовуєте свої сюжети в Інтернеті, то це буде ще кращим рішенням.


0

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

Основна бібліотека PLplot може бути використана для створення стандартних сюжетів xy, напівлінійних графіків, графіків журналів журналів, контурних графіків, 3D графіків поверхні, сітчастої графіки, смужкових діаграм та кругових діаграм. Він працює в Windows (2000, XP та Vista), Linux, Mac OS X та інших Unices.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.