Não sei por que este foi fechado. Ele não convida guerras de chamas ou opiniões, e tem um conjunto de respostas claras: existem apenas algumas bibliotecas de plotagem Python.
12134 Alex B #
7
Por que isso está fechado? Esta é uma pergunta útil. De qualquer forma, minha recomendação é pip search plotver o que aparece. Descobri pygal fazendo isso, e pygal parece ótimo.
Mark E. Haase
Também vale a pena notar que esta pergunta aparece no topo de uma pesquisa no Google por "gráficos em python" - razão suficiente para abri-la novamente.
George Lund
Esta pergunta é útil, não deve ser fechada. Outras opções incluem bokeh e Pyx
atomh33ls
Respostas:
50
Sou eu quem apóia o CairoPlot e estou muito orgulhoso de ter surgido aqui. Certamente o matplotlib é ótimo, mas acredito que o CairoPlot é mais bonito. Portanto, para apresentações e sites, é uma ótima escolha.
Hoje eu lancei a versão 1.1. Se estiver interessado, confira em CairoPlot v1.1
EDIT: Após um inverno longo e frio, o CairoPlot está sendo desenvolvido novamente. Confira a nova versão no GitHub .
O Cairoplot realmente não funciona tão bem para grandes quantidades de dados (me corrija se eu estiver errado). Você não pode adicionar rótulos ao eixo para resumir os hlabels ou vlabels. De qualquer maneira, não consigo ver várias linhas em um gráfico ou ter controle sobre as cores usadas. Eu poderia cortar afastado no script ... movendo-se para matplotlib ...
Jon
Todos devem desconsiderar o comentário de Jon, é muito fácil rotular o eixo e definir as cores usadas ... Veja exemplos de tests.py. De qualquer forma, obrigado por uma boa lib.
Daniel Magnusson
38
Para um trabalho interativo, o Matplotlib é o padrão maduro. Ele fornece uma API no estilo OO, bem como uma API interativa no estilo Matlab.
Chaco é uma biblioteca de plotagem mais moderna do pessoal da Enthought. Ele usa a biblioteca de desenhos vetoriais Kiva da Enthought e atualmente trabalha apenas com Wx e Qt com OpenGL a caminho (o Matplotlib possui back-ends para Tk, Qt, Wx, Cocoa e muitos tipos de imagens, como PDF, EPS, PNG, etc.). As principais vantagens do Chaco são sua velocidade em relação ao Matplotlib e sua integração com a API Traits da Enthought para aplicativos interativos.
Concordo que, de todas as APIs - o matplotlib parece ser o mais maduro e rico em recursos (e também ainda é suportado e está sendo desenvolvido). Basta ir à sua "galeria" para ver vários exemplos (com o código fonte correspondente): matplotlib.sourceforge.net/gallery.html . No entanto, eu diria que sua API é, bem ... complicada - os nomes dos métodos estão me deixando louco :) Falando sobre exemplos "complicados" e simples - esta postagem no blog me ajudou muito a começar com matplotlib: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Timur
Desculpe, devo acrescentar também que o matplotlib não é apenas interativo - você pode realmente salvar plot / chart em um arquivo. Por ex. PNG, PDF ou SVG.
Timur
18
Você também pode usar pygooglechart , que usa a API do Google Chart . Isso não é algo que você sempre desejaria usar, mas se você deseja um pequeno número de gráficos bons, simples e sempre on-line, especialmente se estiver exibindo em um navegador de qualquer maneira, é uma boa escolha.
Uma palavra de aviso: os gráficos que o Google permite criar são bastante limitados em tamanho (largura * altura <= 300.000 pixels). Além disso, o Google Charts (não a API do Python) se engasga com conjuntos de dados de tamanho modesto. Caso contrário, eles são ótimos.
Se receber uma exceção "RenderPMError: Não é possível que o setFont (Times-Roman) esteja ausente nos arquivos T1?" (como eu tenho) em d.save no código acima - Solução é baixar e extrair reportlab.org/ftp/fonts/pfbfer.zip no diretório reportlabs / fornts
Sim, usei dot_line_plot () nas ferramentas de relatórios / estatísticas. É bonito e fácil. Veja a principal resposta de Rodrigo sobre o Matplotlib e o CairoPlot. Eu também uso o Matplotlib. Na verdade, estou usando agora.
928 elmarco
Pessoas estranhas não captaram sua resposta, mas a resposta atualmente mais votada.
21812 pihentagy
Eu acho que isso seria mais positivo se houvesse um exemplo mínimo. Sua resposta será inútil quando o link estiver inoperante.
Martin Thoma
obrigado, o blog já tem muitas informações. e o próprio autor respondeu aqui com mais detalhes posteriormente.
É tudo python nativo e não possui um barramento de dependências. Tenho certeza que o matplotlib é adorável, mas eu estaria baixando e instalando por dias e eu só quero um gráfico de barras measley!
Não parece ter sido atualizado em alguns anos, mas ei, funciona!
Se você gosta de usar o gnuplot para plotagem, considere o Gnuplot.py . Ele fornece uma interface orientada a objetos para o gnuplot e também permite que você passe comandos diretamente para o gnuplot. Infelizmente, ele não está mais sendo desenvolvido ativamente.
É apenas um pacote que facilita a geração dos dados JSON necessários para o Open Flash Charts 2, que são muito bonitos. Confira os exemplos no link acima.
Tecnicamente, não é uma API python, mas você pode usá-la a partir de python, é razoavelmente rápido de codificar e os resultados tendem a parecer bons. Se você estiver usando suas parcelas on-line, essa seria uma solução ainda melhor.
PLplot é um pacote de software multiplataforma para a criação de gráficos científicos. Eles não são muito bonitos (atraentes), mas parecem bons o suficiente. Veja alguns exemplos (código fonte e imagens).
A biblioteca principal do PLplot pode ser usada para criar gráficos xy padrão, gráficos semi-log, gráficos log-log, gráficos de contorno, gráficos de superfície 3D, gráficos de malha, gráficos de barras e gráficos de pizza. É executado no Windows (2000, XP e Vista), Linux, Mac OS X e outros Unices.
pip search plot
ver o que aparece. Descobri pygal fazendo isso, e pygal parece ótimo.Respostas:
Sou eu quem apóia o CairoPlot e estou muito orgulhoso de ter surgido aqui. Certamente o matplotlib é ótimo, mas acredito que o CairoPlot é mais bonito. Portanto, para apresentações e sites, é uma ótima escolha.
Hoje eu lancei a versão 1.1. Se estiver interessado, confira em CairoPlot v1.1
EDIT: Após um inverno longo e frio, o CairoPlot está sendo desenvolvido novamente. Confira a nova versão no GitHub .
fonte
Para um trabalho interativo, o Matplotlib é o padrão maduro. Ele fornece uma API no estilo OO, bem como uma API interativa no estilo Matlab.
Chaco é uma biblioteca de plotagem mais moderna do pessoal da Enthought. Ele usa a biblioteca de desenhos vetoriais Kiva da Enthought e atualmente trabalha apenas com Wx e Qt com OpenGL a caminho (o Matplotlib possui back-ends para Tk, Qt, Wx, Cocoa e muitos tipos de imagens, como PDF, EPS, PNG, etc.). As principais vantagens do Chaco são sua velocidade em relação ao Matplotlib e sua integração com a API Traits da Enthought para aplicativos interativos.
fonte
Você também pode usar pygooglechart , que usa a API do Google Chart . Isso não é algo que você sempre desejaria usar, mas se você deseja um pequeno número de gráficos bons, simples e sempre on-line, especialmente se estiver exibindo em um navegador de qualquer maneira, é uma boa escolha.
fonte
Você não mencionou o formato de saída que precisa, mas o reportlab é bom na criação de gráficos no formato pdf e bitmap (por exemplo, png).
Aqui está um exemplo simples de um gráfico de barras no formato png e pdf:
texto alternativo http://i40.tinypic.com/2j677tl.jpg
Nota: a imagem foi convertida em jpg pelo host da imagem.
fonte
CairoPlot
fonte
Eu usei pychart e achei muito simples.
http://home.gna.org/pychart/
É tudo python nativo e não possui um barramento de dependências. Tenho certeza que o matplotlib é adorável, mas eu estaria baixando e instalando por dias e eu só quero um gráfico de barras measley!
Não parece ter sido atualizado em alguns anos, mas ei, funciona!
fonte
Você já olhou para o ChartDirector for Python ?
Não posso falar sobre isso, mas usei o ChartDirector para PHP e é muito bom.
fonte
O NodeBox é incrível para a criação de gráficos brutos.
fonte
Se você gosta de usar o gnuplot para plotagem, considere o Gnuplot.py . Ele fornece uma interface orientada a objetos para o gnuplot e também permite que você passe comandos diretamente para o gnuplot. Infelizmente, ele não está mais sendo desenvolvido ativamente.
fonte
Chaco do entusiasmo é outra opção
fonte
Você também deve considerar o PyCha http://www.lorenzogil.com/projects/pycha/
fonte
Sou fã do PyOFC2: http://btbytes.github.com/pyofc2/
É apenas um pacote que facilita a geração dos dados JSON necessários para o Open Flash Charts 2, que são muito bonitos. Confira os exemplos no link acima.
fonte
Observe a incorporação do Open Flash Chart para WHIFF http://aaron.oirt.rutgers.edu/myapp/docs/W1100_1600.openFlashCharts e os amCharts incorporados para WHIFF também http://aaron.oirt.rutgers.edu/myapp/ amcharts / doc . Obrigado.
fonte
Você também pode considerar o Google charts .
Tecnicamente, não é uma API python, mas você pode usá-la a partir de python, é razoavelmente rápido de codificar e os resultados tendem a parecer bons. Se você estiver usando suas parcelas on-line, essa seria uma solução ainda melhor.
fonte
PLplot é um pacote de software multiplataforma para a criação de gráficos científicos. Eles não são muito bonitos (atraentes), mas parecem bons o suficiente. Veja alguns exemplos (código fonte e imagens).
A biblioteca principal do PLplot pode ser usada para criar gráficos xy padrão, gráficos semi-log, gráficos log-log, gráficos de contorno, gráficos de superfície 3D, gráficos de malha, gráficos de barras e gráficos de pizza. É executado no Windows (2000, XP e Vista), Linux, Mac OS X e outros Unices.
fonte