software - ¿Cuál es su forma preferida de producir gráficos en una aplicación web de Ruby on Rails?
ruby on rails tutorial español (30)
¿Has probado la API de Google Charts ? - 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.
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.
¿Qué solución de gráficos recomendaría?
¿Cuáles son sus inconvenientes (requiere Javascript, Flash, costoso, etc.)?
Acabo de descubrir que ZiYa produce gráficos realmente atractivos y es específico de Rails.
Las desventajas son que usa Flash y si no desea que los sitios se vinculen a la página XML / SWF, cuesta $ 50 por sitio.
[Todavía no me decidí, pero quería echarlo a la basura por si la gente quiere votarlo]
Acabo de empezar a usar googlecharts para mi proyecto Rails 3. 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).
Deberías echarle un vistazo a la biblioteca Javascript de Dmitry Baranovskiy llamada Raphaël .
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 el soporte completo de IE (ya que está basado en SVG) no está disponible de inmediato ... Sin embargo, los parches actuales son una buena manera de proporcionar soporte de IE, cuyos detalles se pueden encontrar here .
En cuanto a los 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 plugin, ambling , que le proporciona algunos métodos de ayuda para agregar gráficos fácilmente a sus vistas. Tenga en cuenta que la documentación de referencia de amCharts.com sigue siendo imprescindible para adaptar el cuadro a sus requisitos.
En los viejos tiempos, decidí hacer mi propio (usando RVG / RMagick), principalmente porque Gruff no tenía todo lo que quería. La desventaja es que encontrar y eliminar todos los errores en el código de gráficos es un dolor. Hoy en día, Gruff es mi elección ya que realmente se ha avanzado en términos de personalización y flexibilidad.
Sin embargo, las opciones estándar de gránulos / colores apestan, por lo que tendrás que ensuciarte las manos para obtener mejores resultados.
Esto no es específicamente RoR, sin embargo, es un buen puerto de Gruff para javascript: http://bluff.jcoglan.com/
FWIW, no soy partidario de usar Google Charts cuando el ajuste y el acabado son importantes. 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 perfil más alto no usaré Google Charts.
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.
Hacemos esto desgranando a gnuplot para generar los gráficos como PNG del lado del servidor. 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).
He utilizado Fusion Charts extensivamente desde una aplicación web Java, pero debería funcionar de la misma manera desde Rails ya que solo está incorporando Flash a través de HTML o JavaScript y pasando datos XML. Es un paquete elegante y su apoyo siempre ha sido muy receptivo.
I 2nd 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 escribir a mano, pero para casos simples es aún más fácil con un plugin de Rails llamado flotilla . Debería consultar la página de ejemplos para tener una mejor idea de lo que es capaz de hacer. Las funciones de acercamiento y desplazamiento son especialmente impresionantes.
La gema gchartrb ya no se mantiene, parece. El autor points estas gemas:
- googlecharts
- gchart (parece abandonado también)
La nueva visualización de Google parece producir gráficos que son de tipo más variado, de mejor aspecto e interactivos que Google Graphs.
Los gráficos de GoogleCharts y Gruff 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.
Personalmente prefiero los gráficos basados en JavaScript en lugar de Flash. Si eso está bien, también mira High Charts . Un plugin de Rails también está disponible.
Si no necesita imágenes y puede decidir si necesita JavaScript, puede probar con una solución del lado del cliente como el plugin jQuery flot .
Si quieres gráficos bastante atractivos, fáciles de generar y puedes habilitar Flash, entonces definitivamente deberías echarle un vistazo a maani.us xml / swf charts .
Algún generador de XML detrás de él y listo.
Soy fanático de Gruff Graphs , pero Google Charts también es bueno si no te importa confiar en un servidor externo.
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.
Google Charts es una excelente opción si no desea usar Flash. Es bastante fácil de usar por sí mismo, pero para Rails, es aún 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
D3 ha convertido en mi forma preferida de agregar excelentes gráficos a las 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.
Principalmente uso SVG, lo que significa que no hay IE8, pero eso se está convirtiendo en un problema menor.
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
Open Flash Chart II es una opción gratuita que ofrece resultados muy buenos. Lo hace, como era de esperar, requiere Flash.
Fusion Charts es aún mejor, pero cuesta $ 499. Al investigar esto, encontré una versión gratuita reducida que podría servir a sus necesidades.
ChartDirector . Ugly API, pero buenos resultados de imagen del lado del servidor. Binario autónomo
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.
HighChart : una biblioteca de gráficos escrita en JavaScript puro
Las gemas como highchart-rails , lazy-high-chart facilitan la integración con rieles
gem ''chart''
facilita la incorporación de gráficos ChartJS y NVD3 a los rieles.
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.