acemu:articulos:articulos_tecnicos:software:graficando_con_javascript
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
acemu:articulos:articulos_tecnicos:software:graficando_con_javascript [2015/03/25 15:49] – kenneth | acemu:articulos:articulos_tecnicos:software:graficando_con_javascript [2015/06/01 12:02] (actual) – kenneth | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | [[acemu: | ||
+ | |||
+ | ---- | ||
+ | |||
====== Graficando con Javascript ====== | ====== 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. | + | 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, más particularmente dentro de esta wiki. |
+ | |||
+ | Existen infinidad de bibliotecas para hacer gráficos en Javascript y es imposible cubrir todas las posibilidades, | ||
+ | |||
+ | El problema adicional que se plantea es que queremos embeber estas gráficas dentro de DokuWiki, que es lo que estamos usando para desplegar contenido web. Para eso debemos buscar la forma de embeber código // | ||
+ | |||
+ | Para eso hay que primero habilitar la opción **htmlok** de Dokuwiki y luego instalar el plugin [[https:// | ||
+ | |||
+ | Ahora viene la parte interesante: | ||
+ | |||
+ | * ''< | ||
+ | * ''< | ||
+ | * ''< | ||
+ | |||
+ | No hace falta aclarar que a cada uno de estos tags les corresponde un tag de cierre ''</>'', | ||
+ | |||
+ | ===== Ejemplo ===== | ||
+ | |||
+ | A continuación incluimos un ejemplo donde explicamos cómo se emplea cada uno de estos //tags// para armar un gráfico. Primero presentamos el código crudo en HTML que deberíamos escribir para poder presentar el gráfico en el navegador: | ||
+ | |||
+ | <code html grafico.html> | ||
+ | < | ||
+ | < | ||
+ | <script type=" | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | <div id=" | ||
+ | <script type=" | ||
+ | g = new Dygraph(document.getElementById(" | ||
+ | { | ||
+ | xlabel: " | ||
+ | ylabel: " | ||
+ | animatedZooms: | ||
+ | height: 320, | ||
+ | width: 800, | ||
+ | colors: [" | ||
+ | series: { | ||
+ | ' | ||
+ | strokePattern: | ||
+ | } | ||
+ | }, | ||
+ | showRangeSelector: | ||
+ | rangeSelectorHeight: | ||
+ | rangeSelectorPlotStrokeColor: | ||
+ | rangeSelectorPlotFillColor: | ||
+ | strokeWidth: | ||
+ | drawPoints: false, | ||
+ | showRoller: true, | ||
+ | hideOverlayOnMouseOut: | ||
+ | stepPlot: false | ||
+ | }); | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Ahora bien, si colocamos ese archivo '' | ||
- | Existen infinidad de bibliotecas para hacer gráficos en Javascript y es imposible cubrir todas las posibilidades, | ||
+ | <code html ejemplo> | ||
< | < | ||
http:// | http:// | ||
</ | </ | ||
+ | |||
< | < | ||
- | <h1>BERP</h1> | + | <h4>Temperaturas tomadas en el campo de vuelo de la EMA</h4> |
+ | <div id=" | ||
</ | </ | ||
<JS> | <JS> | ||
+ | g = new Dygraph(document.getElementById(" | ||
+ | xlabel: " | ||
+ | ylabel: " | ||
+ | animatedZooms: | ||
+ | height: 300, | ||
+ | width: 600, | ||
+ | colors: [" | ||
+ | series: { | ||
+ | ' | ||
+ | | ||
+ | | ||
+ | } | ||
+ | }, | ||
+ | showRangeSelector: | ||
+ | rangeSelectorHeight: | ||
+ | rangeSelectorPlotStrokeColor: | ||
+ | rangeSelectorPlotFillColor: | ||
+ | strokeWidth: | ||
+ | drawPoints: false, | ||
+ | showRoller: true, | ||
+ | hideOverlayOnMouseOut: | ||
+ | stepPlot: false | ||
+ | }); | ||
+ | </JS> | ||
+ | </ | ||
+ | En la sección ''< | ||
+ | |||
+ | Observese que no usamos la sintáxis de javascript ''< | ||
+ | |||
+ | Luego, en la sección ''< | ||
+ | |||
+ | Finalmente en la sección ''< | ||
+ | |||
+ | Dentro de esta sección, el gráfico se crea al declarar un nuevo objeto '' | ||
+ | |||
+ | < | ||
+ | fecha, | ||
+ | 2015-03-18 16: | ||
+ | 2015-03-18 17: | ||
+ | 2015-03-18 17: | ||
+ | 2015-03-18 18: | ||
+ | 2015-03-18 18: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | El primer campo corresponde a fecha/hora, el segundo a la correspondiente temperatura leida de la estación Davies de la EMA y el tercero a la temperatura de nuestra estación ACEMU. | ||
+ | |||
+ | Lo que viene después es una lista de propiedades o atributos de la gráfica que se dibuja. | ||
+ | |||
+ | El resultado que se obtiene es el siguiente: | ||
+ | |||
+ | < | ||
+ | http:// | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <div id=" | ||
+ | </ | ||
+ | |||
+ | <JS> | ||
g = new Dygraph(document.getElementById(" | g = new Dygraph(document.getElementById(" | ||
xlabel: " | xlabel: " | ||
ylabel: " | ylabel: " | ||
animatedZooms: | animatedZooms: | ||
- | height: | + | height: |
- | width: | + | width: |
colors: [" | colors: [" | ||
series: { | series: { | ||
Línea 26: | Línea 151: | ||
} | } | ||
}, | }, | ||
+ | showRangeSelector: | ||
+ | rangeSelectorHeight: | ||
+ | rangeSelectorPlotStrokeColor: | ||
+ | rangeSelectorPlotFillColor: | ||
strokeWidth: | strokeWidth: | ||
drawPoints: false, | drawPoints: false, | ||
Línea 32: | Línea 161: | ||
stepPlot: false | stepPlot: false | ||
}); | }); | ||
+ | </JS> | ||
+ | Gracias al código Javascript, el gráfico presenta cierto grado de interactividad: | ||
+ | |||
+ | Para entender los detalles del código javascript que incluimos en la sección ''< | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ----- | ||
+ | |||
+ | < | ||
+ | http:// | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <div id=" | ||
+ | </ | ||
+ | |||
+ | <JS> | ||
+ | g = new Dygraph(document.getElementById(" | ||
+ | xlabel: " | ||
+ | ylabel: " | ||
+ | valueRange: [6,null], | ||
+ | animatedZooms: | ||
+ | height: 300, | ||
+ | width: 600, | ||
+ | colors: [" | ||
+ | series: { | ||
+ | ' | ||
+ | strokePattern: | ||
+ | showInRangeSelector: | ||
+ | } | ||
+ | }, | ||
+ | showRangeSelector: | ||
+ | rangeSelectorHeight: | ||
+ | rangeSelectorPlotStrokeColor: | ||
+ | rangeSelectorPlotFillColor: | ||
+ | strokeWidth: | ||
+ | drawPoints: false, | ||
+ | showRoller: true, | ||
+ | hideOverlayOnMouseOut: | ||
+ | stepPlot: false | ||
+ | }); | ||
</JS> | </JS> | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | [[acemu: |
acemu/articulos/articulos_tecnicos/software/graficando_con_javascript.1427323743.txt.gz · Última modificación: 2015/03/25 15:49 por kenneth