Open_flash_chart Lazy Rails Plugin
July 11th, 2008
Hace tiempo que no hacía un plugin. Surgió la necesidad de hacer un dashboard con gráficos de usuarios, suscripciones, participación etc. Estuvimos analizando varias opciones y quedó OpenFlashChart les recomiendo miren los samples, no estan nada mal.


El foco fue puesto en escribir poco código y hacerlo flexible a posibles cambios en open_flash_chart que esta en beta.
Inicialmente solo soporta gráficos de líneas, pero debería ser fácil agregar soporte para otros gráficos. Fué pensado para resolver un problema, no para resolverlos todos ;-)
Todo
- More doc
- Support for other graphs
- Label annotation for pies
- May be more specs? mmm
- Add series matcher block to allow any kind of matcher for series
- Avoid to specify the start_date for time series for each serie
- Add periodically_call_remote_graph (rodrigo orrego chileonrails)
Known issues
- No soporta dos gráficos inline por vez.
- Los gráficos Inline no son compatibles con prototype.js
Instalación
cd vendor/plugins
git clone git://github.com/peterpunk/open_flash_chart_lazy.git
cd ..
cd ..
rake open_flash_chart_lazy:install
Desinstalación
rake open_flash_chart_lazy:remove
Ejemplos
Accediendo a datos remotos
En el controller …
def progress
bar_graph = OpenFlashChartLazy::Line.new("The title of the graph")
first_serie = OpenFlashChartLazy::Serie.new(
[["2008-1",100],["2008-2",120],["2008-3",130]],
{:title=>"Argentina",:start_date=>Time.mktime(2008,1,1),:items=>8})
second_serie = OpenFlashChartLazy::Serie.new(
[["2008-1",50],["2008-2",40],["2008-3",90]],
{:title=>"Tupungato",:start_date=>Time.mktime(2008,1,1),:items=>8})
bar_graph.add_serie(first_serie)
bar_graph.add_serie(second_serie)
render :text=>bar_graph.to_graph_json
end
En la vista …
<%= remote_graph("my_chart",{:route=>"/admin/dashboard/progress"}) %>
Con datos en la página
En el controller …
def show
@pie_chart = OpenFlashChartLazy::Pie.new("Channels")
channels=OpenFlashChartLazy::Serie.new([["Wealth",34],["Financial",45]])
@pie_chart.add_serie(channels)
end
En la vista …
<%= inline_graph(@pie_chart) %>
Personalizando el gráfico
Todos los atributos son asignados a un hash en general, podes agregar los que sean necesarios para que tu gráfico sea lo que necesitas.
bar_graph.x_axis[:labels][:rotate]="vertical"
bar_graph.x_axis[:labels][:rotate]="vertical"
bar_graph.x_axis[:colour]="#808080"
bar_graph.x_axis["grid-colour"]="#A0A0A0"
bar_graph.x_axis[:stroke]=0.5
bar_graph.y_axis[:colour]="#808080"
bar_graph.y_axis[:stroke]=0.5
bar_graph.y_axis["grid-colour"]="#A0A0A0"
Personalizando el Background
Se puede tambien agregar cualquier atributo al gráfico ya que esto es manejado por method missing.
bar_graph.bg_colour="#FFFFFF"
Otras implementaciones para la versión 2
http://github.com/korin/open_flash_chart_2/tree/master may be not working yet
Otras implementaciones para la versión 1
PullMonkey http://github.com/markcatley/open_flash_chart/tree/master
P
4 Responses to “Open_flash_chart Lazy Rails Plugin”
Sorry, comments are closed for this article.





July 11th, 2008 at 12:46 PM
Hola, queria comentarte que hay un plugin que utiliza esas mismas graficas y esta bastante avanzado.
http://www.pullmonkey.com/projects/open_flash_chart/
sludos
July 11th, 2008 at 02:05 PM
Según el research que hice antes de comenzar, el plugin que mencionas trabaja con la versión 1 de open_flash_chart, o sea, que no soporta Json ni inline data que es la que más me interesaba. El approach es diferente, yo necesitaba resolver un problema y hacerlo de cero con la nueva versión de open_flash_chart me pareció la mejor opción.
Saludos
P
July 14th, 2008 at 11:27 AM
Excelente Pedro, yo estuve buscando un plugin asi tampoco encontre lo que necesitaba, hasta hoy. Pura Vida!
July 14th, 2008 at 05:36 PM
Gracias Jose!
Estamos trabajando con monk.e.boy para soportar muchos gráficos inline en la misma página.
Abrazo
P