Qual é a sua forma preferida para produzir gráficos em uma aplicação web Ruby on Rails?
-
01-07-2019 - |
Pergunta
Eu gostaria de adicionar alguns pizza, barras e dispersão gráficos para minha aplicação web Ruby on Rails. Quero quer que eles sejam atraente, fácil de adicionar e não introduzir muito em cima.
Que solução de gráficos que você recomendaria?
Quais são os seus inconvenientes (JavaScript, Flash, caro, etc)?
Solução
Google Charts é uma excelente escolha se você não quiser usar o Flash. É muito fácil de usar por conta própria, mas para Rails, é ainda mais fácil com o gchartrb gem "noreferrer". Um exemplo:
GoogleChart::PieChart.new('320x200', "Things I Like To Eat", false) do |pc|
pc.data "Broccoli", 30
pc.data "Pizza", 20
pc.data "PB&J", 40
pc.data "Turnips", 10
puts pc.to_url
end
Outras dicas
Se você não precisa de imagens, e pode resolver sobre exigindo JavaScript, você pode tentar uma solução do lado do cliente como o plugin jQuery flot .
Eu sou um fã de Gruff Gráficos , mas Google Charts também é bom se você não se importa confiar em um servidor externo.
requer flash e não está livre (embora barato): amcharts .
Eu usei-o com sucesso e como ele. I avaliou um número de opções de um tempo atrás e escolheu. Na época, no entanto, o Google Charts não era tão maduro quanto parece ser agora. Eu consideraria que o primeiro se eu fosse para reavaliar agora.
Há também desalinhado . Dei uma olhada no código recentemente e parecia fácil de modificar / estender. Ela produz SVG e PNG (por conversão).
Você já tentou o Google Charts API? - APIs de serviços web realmente não vêm muito mais simples. É livre de usar, simples de implementar, e os gráficos não parece muito má qualidade.
Open Flash Chart II é uma opção livre que dá saída muito agradável. Ele faz, como seria de esperar, requer o Flash.
fusão gráficos é ainda melhor, mas é de US $ 499. Em investigar este, achei um corte-down versão livre que pode atender suas necessidades.
Eu segundo o voto para flot . A versão mais recente permite que você faça algumas animações e ações que eu pensava só seria possível através do Flash. A documentação é fantástico. É simples de escrever à mão, mas para casos simples torna-se ainda mais fácil com Rails plugin chamado flotilha . Você deve verificar o exemplos página para uma melhor idéia do que é capaz. As capacidades de zoom e pairar são especialmente impressionante.
A nova visualização do Google parece produzir gráficos que são do tipo mais variado, melhor aparência e interativo do que o Google Gráficos.
Morris.js é agradável e de código aberto. Eu gostaria de escolhê-lo em comparação com Highcharts. Há um novo grande vídeo tutorial de Railscasts
Eu apenas encontrei Ziya produz alguns gráficos realmente sensuais e é Rails específica.
As desvantagens são que ele usa Flash e se você não quer que os sites o link para XML página / SWF que custa US $ 50 por site.
[eu não tiver decidido sobre isso ainda, mas queria jogá-lo lá fora, no caso de pessoas querem votar it up]
Eu usei Fusioncharts extensivamente dentro de um aplicativo web Java, mas deve funcionar da mesma maneira de Rails desde que você está apenas a incorporação de um flash via HTML ou JavaScript e passá-la dados XML. É um pacote liso e seu apoio tem sido sempre muito responsivo.
Você deve dar uma olhada na biblioteca Javascript Dmitry Baranovskiy de chamado Raphaël .
gráficos do Google é muito agradável, mas não é a única solução trilhos. Você simples uso da linguagem de programação de sua escolha para urls produzem dinamicamente que contêm os dados e Google retorna você faça uma imagem agradável com seu gráfico.
Nos velhos tempos, eu decidi fazer a minha própria (usando RVG / RMagick), principalmente porque Gruff não tinha tudo o que eu queria. A desvantagem foi que encontrar e eliminar todos os erros em gráficos de código é uma dor. Estes dias Gruff é a minha escolha como ele é realmente ido para a frente em termos de personalização e flexibilidade.
Os modelos padrão Gruff / opções de cores chupar embora, assim você terá que sujar as mãos para obter melhores resultados.
Em relação amcharts , há uma versão "livre" com muito poucas restrições que gera gráficos em flash, incluindo a 'gráfico, amCharts.com' menção.
E há um bom plugin, ambling , que lhe fornece alguns métodos auxiliares para facilmente adicionar gráficos para suas visualizações. Por favor note que amCharts.com documentação de referência ainda é uma obrigação de adaptar o gráfico com suas necessidades.
GoogleCharts e gráficos Gruff são grandes, mas às vezes eles não têm algumas características que eu preciso para plotagem mais científica. Não é uma jóia para gnuplot que pode ser útil para algumas dessas situações.
Eu comecei usando Protovis para gerar gráficos SVG com javascript. Minha abordagem básica em trilhos é ter um controlador que retorna os dados a serem mapeadas como JSON, e colher-lo com um pouco de javascript e Protovis.
A única desvantagem é que o apoio total IE (já que é baseado em SVG) está actualmente disponível em linha reta da caixa ... No entanto, patches atuais ir uma maneira justa de apoio IE, cujos detalhes podem ser encontrados < a href = "http://code.google.com/p/protovis-js/issues/detail?id=15" rel = "nofollow"> aqui .
Eu pessoalmente prefiro gráficos baseados em JavaScript sobre o Flash. Se isso é ok, também verificar alta Charts . A Rails plugin de também está disponível.
A jóia gchartrb não é mais mantido, parece. O autor pontos para essas jóias:
- googlecharts
- gchart (parece abandonado também)
Fazemos isso por descascar para fora para gnuplot para gerar os gráficos como server-side PNGs. É um pouco old-school e os gráficos não são interativos, mas ele funciona e é armazenado em cache.
(A outra razão pela qual fazemos isso é para que possamos colocar exatamente o mesmo gráfico na versão em PDF do relatório).
Este não é especificamente RoR no entanto, é porta lisa bonita de Gruff para javascript: http: // blefe. jcoglan.com/
ChartDirector . API feio, mas bom, resultados de imagem no servidor lado. Auto-contido binário.
FWIW, eu não sou um fã do uso de gráficos do Google quando ajuste e acabamento é importante. Acho que as variáveis ??de dimensionamento, em particular, são imprevisíveis -. A carta faz sua própria coisa
Eu ainda não jogou com Gruff / Bluff / etc., Mas para um projeto de alto perfil que não vai usar o Google Charts.
Se você quiser gráficos bastante sensuais, fácil de gerar, e você pode ativar o Flash, então você definitivamente deve ter um olhar para maani.us xml / swf gráficos .
Alguns construtor XML por trás dele e você está pronto para ir.
FusionCharts é um produto muito bom gráficos. Funciona bem com RoR. Seu apoio e fóruns são bons. A versão gratuita deste produto tem número limitado de gráficos e recursos, mas sem marca de água.
Eu só comecei a usar googlecharts para os meus rails 3 do projeto. É agradável e limpo, e parece ser o único google gem baseada API de visualização do que é vivo. Outros são inativos e principalmente usar o velho gráficos API do Google (lançado em algum lugar em 2007-2008).
D3 se tornou a minha maneira preferida adicionar belos gráficos para aplicações web. Você tem que fazer um pouco de trabalho mroe que algumas outras estruturas, mas a aparência e controle supera isso.
Eu uso principalmente SVG, que significa que não IE8, mas que está se tornando um problema menor.
HighChart - A biblioteca de gráficos escrito em JavaScript puro
Gems como highchart-rails , lazy-alta-chart faz a integração com os trilhos mais fácil
gem 'chart'
torna fácil adicionar gráficos ChartJS e NVD3 para trilhos.