Herramientas de usuario

Herramientas del sitio


acemu:articulos:articulos_tecnicos:software:graficando_con_javascript

¡Esta es una revisión vieja del documento!


Graficando con Javascript

En este artículo vamos a mostrar cómo podemos graficar datos que tengamos en algún archivo CSV, empleando alguna biblioteca de Javascript y desplegando el resultado en una página web.

Existen infinidad de bibliotecas para hacer gráficos en Javascript y es imposible cubrir todas las posibilidades, así que vamos a limitarnos a ilustrar algunos ejemplos empleando una biblioteca gráfica particular: dygraph

El problema adicional que se plantea es que queremos embeber estas gráficas dentro de una WiKi, más precisamente DokuWiki, que es lo que estamos usando para desplegar este contenido. Para eso debemos buscar la forma de embeber código Javascript tanto en el cabezal (<head>) del código HTMl que devuelve Dokuwiki como en el cuerpo (<body>) del mismo y hacer referencia a una división (<div>) dentro de la cual aparecerá el resultado de ejecutar ese Javascript.

Para eso hay que primero habilitar la opción htmlok de Dokuwiki y luego instalar el plugin InlineJS de Dokuwiki.

Ahora viene la parte interesante: InlineJS habilita 3 tags que debemos emplear para indicarle qué código html o Javascript quetemos insertar donde:

  • <PRELOAD>: que permite definir qué bibliotecas de Javascript queremos cargar en el cabezal del HTML
  • <HTML>: que permite insertar código HTML en el cuerpo de la página, donde entre otras cosas podemos declarar la <div> dentro de la cual queremos desplegar el gráfico
  • <JS>: dentro del cual metemos tódo el código javascript necesario para armar el gráfico

No hace falta aclarar que a cada uno de estos tags les corresponde un tag de cierre </>, obviamente

Ejemplo

A continuación incluimos un ejemplo donde explicamos cómo se emplea cada uno de estos tags para armar un gráfico:

ejemplo
<PRELOAD>
http://acemu.org/metero/dygraph-combined-dev.js
</PRELOAD>
 
<HTML>
<h4>Temperaturas tomadas en el campo de vuelo de la EMA</h4>
<div id="graphdiv"></div>
</HTML>
 
<JS>
  g = new Dygraph(document.getElementById("graphdiv"),"http://acemu.org/metero/datos.csv",{
  xlabel: "fecha",
  ylabel: "T(&deg;C)",
  animatedZooms: true,
  height: 300,
  width: 600,
  colors: ["rgb(255,50,10)","rgb(0,80,255)"],
  series: {
      'EMA': {
  strokePattern: [5,3],
  showInRangeSelector: true,
   }
  },
  strokeWidth: 2.3,
  drawPoints: false,
  showRoller: true,
  hideOverlayOnMouseOut: false,
  stepPlot: false
});
</JS>

En la sección <PRELOAD> le indicamos a Dokuwiki que queremos cargar la biblioteca javascript que se encuentra en esta dirección: http://acemu.org/metero/dygraph-combined-dev.js

Observese que no usamos la sintáxis de javascript <script…></script>, sino que el propio plugin InlineJS se encarga de eso en la sección PRELOAD. Ojo, es importante tener claro esto, porque si se incluyen los tags <script> el resultado no funciona (se puede ver en el fuente de la página que el código resultante está mal).

Luego, en la sección <HTML> insertamos un título (en realidad se podría haber hecho con el propio Dokuwiki) y seguido declaramos <div id=“graphdiv”></div> que es la división dentro de la cual el código de javascript va a insertar el gráfico.

Finalmente en la sección <JS> insertamos el código de javascript que hace el grafico propiamente dicho. Nuevamente no se insertan los tags <script> de comienzo y finalización del código Javascript porque eso lo hace el <JS>.

El resultado que se obtiene es el siguiente:

<PRELOAD> http://acemu.org/metero/dygraph-combined-dev.js </PRELOAD>

<HTML> <h4>Temperaturas tomadas en el campo de vuelo de la EMA</h4> <div id=“graphdiv”></div> </HTML>

<JS>

g = new Dygraph(document.getElementById("graphdiv"),"http://acemu.org/metero/datos.csv",{
xlabel: "fecha",
ylabel: "T(&deg;C)",
animatedZooms: true,
height: 300,
width: 600,
colors: ["rgb(255,50,10)","rgb(0,80,255)"],
series: {
    'EMA': {
strokePattern: [5,3],
showInRangeSelector: true,
 }
},
strokeWidth: 2.3,
drawPoints: false,
showRoller: true,
hideOverlayOnMouseOut: false,
stepPlot: false

}); </JS>

Para entender lo detalles del código javascript que incluimos en la sección <JS>, recomendamos leer la documentación de dygraph

La ventaja de emplear esta biblioteca gráfica de javascript es que toma los datos a graficar de un simple archivo CSV, por lo que no es necesario alterar el código de la página de Dokuwiki para actualizar el gráfico, alcanza con simplemente actualizar el contenido del archivo CSV. Incluso es más, lo que en realidad necesita dygraph es una URL que devuelva los datos en formato CSV, pero bien podría ser la dirección de un código PHP que extraiga los datos a graficar de una base de datos SQL y los entregue en formato CSV.

acemu/articulos/articulos_tecnicos/software/graficando_con_javascript.1427326260.txt.gz · Última modificación: 2015/03/25 16:31 por kenneth