2008-09-17 22 views
76

Me gustaría agregar algunos gráficos de tarta, barra y dispersión a mi aplicación web Ruby on Rails. Quiero que sean atractivos, fáciles de agregar y que no introduzcan demasiados gastos generales.¿Cuál es su forma preferida de producir gráficos en una aplicación web de Ruby on Rails?

¿Qué solución de gráficos recomendaría?
¿Cuáles son sus inconvenientes (requiere Javascript, Flash, costoso, etc.)?

+0

Una gran pregunta ... me recordó que necesito volver a poner en marcha mi proyecto de carriles otra vez ... Google charts no estaba allí cuando hice esta pregunta en grupos de google. Se ve bien. – Gishu

+1

Esto es mucho mejor que pagar toneladas de dinero para esas librerías ASP.NET. –

+0

Al final fui por una implementación de gráficos de Google, pero ahora estoy cambiando a Google Visualization. – RichH

Respuesta

60

Google Charts es una excelente opción si no desea utilizar el flash. Es bastante fácil de usar solo, pero para Rails, es incluso más fácil con la gema gchartrb. Un ejemplo:

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 
+0

He decidido ir con Google Charts y gchartrb para empezar. Es simple y rápido: puedo pasar a algo más sofisticado cuando sea necesario. – RichH

+1

Desde entonces, he encontrado un poco molesto a los Gráficos de Google ya que las etiquetas de tarta a menudo se desbordan a los lados del cuadro y no son bonitas. Me estoy moviendo a Google Visualizations, que se ve mucho mejor hasta ahora, pero está basado en Javascript. – RichH

+4

¿Dónde colocas este código? En un controlador? ¿Cómo lo muestras? –

6

¿Has probado el Google Charts API? - las API de servicios web en realidad no son mucho más simples. Es de uso gratuito, fácil de implementar y los gráficos no se ven muy de mala calidad.

2

Google charts es muy bueno, pero no es una solución de solo rieles. Simplemente use el lenguaje de programación de su elección para producir dinámicamente urls que contengan los datos y google devuelve una imagen agradable con su gráfico.

http://code.google.com/apis/chart/

3

Acabo de encontrar ZiYa produce algunos gráficos realmente sexy y es específico de Rails.

Las desventajas es que usa Flash y si no desea que los sitios se vinculen a la página XML/SWF, cuesta $ 50 por sitio.

[yo no he decidido en él todavía, pero quería tirar por ahí en caso de que las personas quieren votar hacia arriba]

+0

Gruff Graphs no requiere flash, es específico para raíles y es gratuito. – lordscarlet

+0

Además, parece que ZiYa te está dando métodos fáciles de implementar http://www.maani.us/xml_charts/index.php?menu=Gallery – lordscarlet

+0

Tienes razón lordscarlet ZiYa es solo un contenedor RoR para XML/Gráficos SWF, pero eso podría ser bastante útil. La licencia es para XML/SWF: obtienes ZiYa gratis. – RichH

0

Hacemos esto por los bombardeos a cabo a gnuplot para generar los gráficos como archivos PNG en servidor lado. Es un poco de la vieja escuela y las tablas no son interactivas, pero funciona y es almacenable en caché.

(La otra razón por la que hacemos esto es para poder poner exactamente el mismo cuadro en la versión PDF del informe).

2

En los viejos tiempos, decidí rodar el mío (usando RVG/RMagick), principalmente porque Gruff no tenía todo lo que quería. El inconveniente fue que encontrar y eliminar todos los errores en el código de gráficos es un problema. Hoy en día, Gruff es mi elección ya que realmente se ha avanzado en términos de personalización y flexibilidad.

Las opciones estándar de gránulos/colores apestan, por lo que tendrá que ensuciarse las manos para obtener mejores resultados.

15

Si no necesita imágenes y puede decidir si necesita JavaScript, puede probar con una solución del lado del cliente como el complemento jQuery flot.

3

He utilizado Fusion Charts extensamente desde dentro de una aplicación web Java, pero debería funcionar de la misma manera desde Rails ya que solo está incrustando una Flash mediante HTML o JavaScript y pasándola datos XML. Es un paquete elegante y su apoyo siempre ha sido muy receptivo.

0

Esto no es específicamente RoR sin embargo, es bastante resbaladiza puerto de Gruff a javascript: http://bluff.jcoglan.com/

7

También hay Scruffy. Eché un vistazo al código recientemente y me pareció fácil de modificar/ampliar. Produce svg y (por conversión) png.

+0

Oooo ... SVG. ¡Tendré que verificar esto cuando vuelva a hacer gráficos! – lordscarlet

0

ChartDirector. Ugly API, pero buenos resultados de imagen del lado del servidor. Binario autónomo

3

Debería echar un vistazo a Dmitry Baranovskiy's Javascript library called Raphaël.

+1

¿Conoces alguna envoltura de Ruby/Rails para dibujar gráficos con Raphaël? – Avishai

8

Es requiere flash y no es gratis (aunque de bajo costo): amcharts.

Lo he usado con éxito y me gusta. Evalué varias opciones hace un tiempo y lo elegí. En ese momento, sin embargo, Google Charts no era tan maduro como parece ser ahora. Lo consideraría primero si tuviera que volver a evaluar ahora.

+0

Esto ha estado disponible en una versión de Javascript por un tiempo, editado en consecuencia. En segundo lugar la recomendación, gran herramienta. – Thilo

+0

@Thilo Awesome! – Otto

0

FWIW, no soy seguidor de usar Google Charts cuando el ajuste & es importante. Encuentro que las variables para el dimensionamiento, en particular, son impredecibles: el gráfico hace lo suyo.

Todavía no he jugado con Gruff/Bluff/etc., Pero para un proyecto de mayor perfil no utilizaré Google Charts.

0

Si quieres gráficos bastante atractivos, fáciles de generar y puedes habilitar Flash, entonces definitivamente deberías echar un vistazo a maani.us xml/swf charts.

Algún generador XML detrás de él y listo.

+0

El contenedor ZiYa que mencioné proporciona un contenedor Rails para xml/swf. Gráficos muy atractivos. – RichH

+0

Parece que el contenedor ZiYa está muerto y ahora carece de documentación. –

2

Con respecto a amcharts, hay una versión "gratuita" con muy pocas restricciones que genera gráficos Flash, incluida la mención "gráfico por amCharts.com".

Y hay un buen complemento, ambling, que le proporciona algunos métodos de ayuda para agregar gráficos fácilmente a sus vistas. Tenga en cuenta que amCharts.com reference documentation es una necesidad para adaptar el cuadro a sus requisitos.

6

I 2º el voto para flot. La última versión te permite hacer algunas animaciones y acciones que previamente pensé que solo serían posibles a través de Flash. La documentación es fantástica. Es simple de escribir a mano, pero para casos simples es aún más fácil con un complemento de Rails llamado flotilla. Debería consultar el examples page para tener una mejor idea de lo que es capaz de hacer. Las funciones de acercamiento y desplazamiento son especialmente impresionantes.

0

FusionCharts es un muy buen producto de gráficos. Funciona bien con RoR. Su apoyo y foros son buenos. La versión gratuita de este producto tiene una cantidad limitada de gráficos y funciones, pero no marca de agua.

2

GoogleLas tablas de Gráficos y Gráficos son geniales, pero a veces carecen de algunas características que necesito para un trazado más científico. Hay una gema para gnuplot que puede ser útil para algunas de estas situaciones.

http://rgplot.rubyforge.org/

1

yo personalmente prefiero tablas basadas en JavaScript en Flash. Si eso está bien, también mira High Charts. Un Rails plugin también está disponible.

2

Empecé a usar protovis para generar gráficos SVG con javascript. Mi enfoque básico en los rieles es tener un controlador que devuelva los datos que se trazarán como JSON, y recogerlos con un poco de javascript y protovis.

El único inconveniente, es que la compatibilidad completa con IE (ya que está basada en SVG) no está disponible en este momento ... Sin embargo, los parches actuales proporcionan soporte de IE, cuyos detalles se pueden encontrar here.

0

Acabo de empezar a usar googlecharts para mis raíles 3 proyecto. Es agradable y limpio, y parece ser la única gema basada en la api de visualización de google que está viva. Otros están inactivos y en su mayoría usan la antigua API api (publicada en algún lugar en 2007-2008).

https://github.com/mattetti/googlecharts

4

Morris.js es agradable y de código abierto. Me gustaría elegirlo comparando con los Highcharts. Hay un nuevo gran video tutorial de Railscasts

0

D3 se ha convertido en mi forma preferida añadir grandes gráficos que buscan aplicaciones web. Tienes que hacer un poco más de trabajo que otros frameworks, pero la apariencia y el control pesan más que eso.

Uso principalmente SVG, lo que significa que no hay IE8, pero eso se está convirtiendo en un problema menor.

0

gem 'chart' hace que sea fácil añadir ChartJS y gráficos NVD3 a los rieles.

Cuestiones relacionadas