lunes, 14 de diciembre de 2020

SERVIDOR-Gráfico de datos de temperaturas -JavaScript

SERVIDOR

Gráfico de datos de temperaturas

JavaScript


Hace un año que tengo en mi servidor de Gráficas de datos meteorológicos realizado en Python haciendo uso de la librería matplotlib.
Se puede ver el gráfico de temperaturas diaria de Palencia en http://seta43.duckdns.org/seta/webcam/gradia.html.
En este caso, a nivel de programación, la gráfica se realiza en el servidor que crea los ficheros de imagen, los cuales se insertan en la página WEB.

Gráficos utilizando la librería matplotlib.

Existe otra forma de generar gráfica de datos, y esta es utilizando JavaScript.
Haciendo uso de la librería http://www.jqplot.com/ podemos hacer gráficas bastante vistosas.


Gráficos utilizando la librería jqplot.

index.html
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>TEMPERATURA PALENCIA</title>
        <link class="include" rel="stylesheet" type="text/css" href="jquery.jqplot.min.css" />
        <script class="include" type="text/javascript" src="jquery.min.js"></script>
        <script class="include" type="text/javascript" src="jquery.jqplot.min.js"></script>
    </head>
    <body>  
        <div align="left"> <h2><font color="#990000">Temperaturas Palencia</font></h2> </div> <br>
        <div id="ejemplo1" style="height:400px; width:700px;"></div>
        <script class="code" type="text/javascript">
            $(document).ready(function(){
              var lineaY = [];

//_________________________
var lineaYs = [9.4,9.2,9.2,9.2,9.2,9.3,9.1,9.1,9.1,9.1,9.0,8.9,8.8,8.8,8.8,8.7,8.7,8.7,8.8,8.8,8.8,8.9,
8.9,9.0,9.0,9.0,9.1,9.0,9.0,9.0,9.0,8.9,8.8,8.7,8.5,8.4,8.3,8.3,8.4,8.4,8.7,9.0,9.3,9.4,9.7,10.1,10.2,10.6,
10.8,11.1,11.3,12.2,12.3,12.3,11.8,11.8,12.1,12.0, ,11.6,11.5,11.2,10.8,10.8,10.9,10.8,10.7,10.8,11.0,
 , , , , , , , , , , , , , , , , , , , , , , , , , , ,]

//____________________________
var z=0;
for (var i=0; i<24; i+=0.25){    lineaY.push([i, lineaYs[z] ]);  z++; }
              var puntos = $.jqplot('ejemplo1', [lineaY],
                { 
                  title: 'GRÁFICO POR HORAS',                 
                  seriesDefaults:
                        {
                            showMarker: false,
                            rendererOptions:
                                {
                                smooth: true,
                                animation: { show: true    }
                                },                           
                        },   
                  series:
                      [
                        {showMarker:false},
                      ],
                  axes:
                        {
                            xaxis:{ label:'HORA', pad: 0 }, 
                            yaxis:{  label:'Temp.'  }
                        }
                });
            });
        </script>
     </body>
</html>
prugra.sh
#!/bin/bash
datecreated=`date`
echo "GENERANDO GRAFICOS JavaScript"
cp $HOME/www/webcam/datos.txt $HOME/www/prugra/datos.txt
cd $HOME/www/prugra
cat parte1.txt datos.txt parte3.txt > index.html

Después de muchas pruebas no he conseguido que javaScript cargue automática los datos desde un fichero.
He optado por una opción poco ortodoxa, unir mediante el comando cat 3 ficheros, la cabecera, los datos y el final de fichero, y de esta forma creamos el fichero index.html. Este fichero con código javaScript se ejecuta en el navegador, creando la gráfica.
El problema  de crear la gráfica con una librería de javaScript, es que se tiene que cargar la librería jqplot, y el tamaño de esta librería es de 260Kbytes. En estos tiempos no es mucho, pero debemos tener en cuenta el consumo  de datos.
Para hacer bonita la gráfica utilizo la opción animation: { show: true } que genera una animación en la creación de la gráfica.

El fichero de datos.txt se crea en el programa de python que obtiene los datos del sensor  gratem.py.
Podemos ver funcionando la página en:
    http://seta43.duckdns.org/seta/prugra/index.html

Espero que les haya gustado este artículo sobre creación de gráficos en una página web.


Saludos.
Juan Galaz

Bibliografía:

Gráficas de datos metereológicos
http://seta43.duckdns.org/seta/webcam/gradia.html.
http://www.jqplot.com/

No hay comentarios:

Publicar un comentario