Fonction: chart.renderer.image

Ce forum est dédié aux discussions qui concernent les graphiques réalisés avec la librairie Highcharts, Une question, un bug ?

Modérateurs : jturlier, Météo Villarzel

courtil
Messages : 54
Enregistré le : 25 mai 2014, 14:31
Localisation : Pas de Calais - France
Contact :

Fonction: chart.renderer.image

Message par courtil » 03 déc. 2014, 15:10

Bonjour à tous,

J'ai commencé à paramétrer les Graphs Dynamiques

Le 0°C est positionné.

la fonction "legend " de même.

J'ai installé la fonction : chart.renderer.image en utilisant dans un premier temps les données de Highcharts
la légende m'indique sa création mais pas d'affichage ??

cette fonction est uniquement positionnée sur les graphs températures.

voici une partie du script:

Code : Tout sélectionner

	yAxis:1,
				type: 'spline',
                color: '#3399FF',
				lineWidth: 0.5,
                data: comArr(dewpoint)  
                },
				
			 function (chart) { 

        chart.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30)
            .add();

			},
Merci de vos infos pour rétablir le bon choix.

Cordialement

Michel
OS : Windows 11
Station Météo : Vantage PRO2
Cumulus version 313.3 version 3148
http://meteo621.free.fr/

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: Fonction: chart.renderer.image

Message par Météo Villarzel » 03 déc. 2014, 15:27

Salut

je ne comprends pas bien ou tu veux positionner une image, sur l'axe Y ?

A+
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

courtil
Messages : 54
Enregistré le : 25 mai 2014, 14:31
Localisation : Pas de Calais - France
Contact :

Re: Fonction: chart.renderer.image

Message par courtil » 03 déc. 2014, 15:56

Bonjour,

Non je voudrai positionner le blason sur le coté droit en haut de l'image après le titre du graph.

j'ai fait une gourance dans la rédaction de la fonction ??

Merci de tes infos

Cordialement

Michel
OS : Windows 11
Station Météo : Vantage PRO2
Cumulus version 313.3 version 3148
http://meteo621.free.fr/

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: Fonction: chart.renderer.image

Message par Météo Villarzel » 03 déc. 2014, 16:42

difficile de voir s'il manque une ) ou un ; sans avoir le code complet, autrement il me semble que c'est bon, les deux premiers chiffres sont la position de l'image et les deux derniers la taille.

http://jsfiddle.net/gh/get/jquery/1.7.2 ... -on-chart/

A+
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

courtil
Messages : 54
Enregistré le : 25 mai 2014, 14:31
Localisation : Pas de Calais - France
Contact :

Re: Fonction: chart.renderer.image

Message par courtil » 03 déc. 2014, 17:44

re,

je te donne ci-aprés le script complet :

Code : Tout sélectionner

<?php
// appel du script de connexion
require("mysqli_connect.php");                     
// On récupère le timestamp du dernier enregistrement
$sql="select max(tstamp) from data";
$query = mysqli_query($conn,$sql);               
$list=mysqli_fetch_array($query);     

// On détermine le stop et le start de façon à récupérer dans la prochaine requête que les données des dernières xx heures
$stop=$list[0];
$start=$stop-(86400*2);

// Récupération des données sur les dernières 48 heures avec un tri ascendant sur le timestamp
$sql = "SELECT tstamp, outdoortemperature,dewpoint  FROM data where tstamp >= '$start' and  tstamp <= '$stop' ORDER BY 1";  
$query=mysqli_query($conn,$sql);                   
$i=0;
while ($list = mysqli_fetch_assoc($query)) {      
if (date("I",time())==0) {
$time[$i]=($list['tstamp'])*1000;
}
else {
$time[$i]=($list['tstamp']+7200)*1000;
}

$outdoortemperature[$i]=$list['outdoortemperature']*1;	
$dewpoint[$i]=$list['dewpoint']*1;
$i++;
}
	
  ?>

<script type="text/javascript"> 
eval(<?php echo  "'var time =  ".json_encode($time)."'" ?>);
eval(<?php echo  "'var outdoortemperature =  ".json_encode($outdoortemperature)."'" ?>);
eval(<?php echo  "'var dewpoint =  ".json_encode($dewpoint)."'" ?>);
</script>


      <!-- 2. Add the JavaScript to initialize the chart on document ready -->
<script type="text/javascript"> 
	  
    function comArr(unitsArray) { 
        var outarr = [];
        for (var i = 0; i < time.length; i++) {
         outarr[i] = [time[i], unitsArray[i]];
        }
      return outarr;
    }
	
	
    
$(function () {
    var chart;        
         $(document).ready(function() { 
var highchartsOptions = Highcharts.setOptions(Highcharts.theme);		 
         Highcharts.setOptions({
        lang: {
            months: ["Janvier "," Février "," Mars "," Avril "," Mai "," Juin "," Juillet "," Août "," Septembre "," Octobre "," Novembre "," Décembre"],
            weekdays: ["Dim "," Lun "," Mar "," Mer "," Jeu "," Ven "," Sam"],
			shortMonths: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil','Août', 'Sept', 'Oct', 'Nov', 'Déc'],
            decimalPoint: ',',
            resetZoom: 'Reset zoom',
            resetZoomTitle: 'Reset zoom à 1:1',
            downloadPNG: "Télécharger au format PNG image",
            downloadJPEG: "Télécharger au format JPEG image",
            downloadPDF: "Télécharger au format PDF document",
            downloadSVG: "Télécharger au format SVG vector image",
            exportButtonTitle: "Exporter image ou document",
            printChart: "Imprimer le graphique",
            loading: "Laden..."
        }
      });
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
				zoomType: 'x',
                type: 'spline',
                marginRight: 90,
                marginBottom: 60,
				plotBorderColor: '#346691',
				plotBorderWidth: 1,
				    plotBackgroundColor: {
             linearGradient: [0, 0, 300, 300],
             stops: [
             [0, 'rgb(255, 255, 255)'],
             [1, 'rgb(200, 255, 255)']
                ]
            }
            },

            title: {
                text: 'Température et Point de Rosée des dernières 48H',
                x: -20 //center
            },
            subtitle: {
                text: 'Le Courtil aux Epines',
                x: -20
            },
			credits: {
            text: '© Météo Villarzel',
            href: 'http://www.boock.ch/meteo-villarzel.php'
		
			},
			legend: {
            align: 'center',
            verticalAlign: 'center',
            x: -400,
            y: 10,
            backgroundColor: '#FCFFC5'
        },
		
			xAxis: {
				type: 'datetime',			 

			},
			yAxis: [{ // 1er yAxis (numero 1)
			gridLineWidth: 1,
			tickInterval:1,
			title: {
					text: 'Température (°C)',
					style: {
						color: '#000000'
					}
			},
				labels: {
					formatter: function() {
						return this.value +'°C';
					},
					style: {
						color: '#FF0000'
					}
				},
				
				
			opposite: true
			 },{ // 2ème yaxis (numero 2)
				gridLineWidth: 1,
				tickInterval:1,
				
					title: {
					text: 'Point de Rosée (°C)',
					style: {
						color: '#000000'
					}
				},
				
					labels: {
					formatter: function() {
						return this.value +' °C';
					},
					style: {
						color: '#0000FF'
					}
				},
						
						plotLines: [{
                color: '#ff0000',
				dashStyle: 'spline',
                width: 2,
                value: 0
            }]
				
			}], 
		
			

	    tooltip: {
				crosshairs:[true],
				borderColor: '#4b85b7',
				shared: true,
				backgroundColor: '#edf1c8',
				formatter: function() {
                var s = '<b>'+ Highcharts.dateFormat('%e %B à %H:%M H', this.x) +'</b>';
                $.each(this.points, function(i, point) {
					var unit = {
                    'Température': '°C',
                    'Point de Rosée': '°C',
                    }[this.point.series.name];
				    s = s + '<br>' + '<span style="color:'+ point.series.color +'">' + point.series.name + '</span> : '  
+Highcharts.numberFormat(point.y,1,","," ")
                       + unit;
                });
                return s;
            },
            },
		
	    plotOptions: {
				series: {
					marker: {
						enabled: false
					}
				}
			},
            series: [ 
			
			
			{
                name: 'Température',
			yAxis:0,
				type: 'spline',
                 color: '#ff0000',
				lineWidth: 0.5,
                data: comArr(outdoortemperature)  
                },
				{
                name: 'Point de Rosée',
			yAxis:1,
				type: 'spline',
                color: '#3399FF',
				lineWidth: 0.5,
                data: comArr(dewpoint)  
                },
				
			 function (chart) { 

        chart.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30)
            .add();

			},

				
              ]
			
        });
      });
    });
	 
   </script>

      <div id="container" style=" width: 1250px; height: 500px; margin: 0 auto"></div>

Merci pour tout.

Cordialement

Michel
OS : Windows 11
Station Météo : Vantage PRO2
Cumulus version 313.3 version 3148
http://meteo621.free.fr/

Avatar du membre
Météo Villarzel
Administrateur du site
Messages : 524
Enregistré le : 06 févr. 2014, 09:48
Contact :

Re: Fonction: chart.renderer.image

Message par Météo Villarzel » 03 déc. 2014, 18:10

tu as placé le code images dans le code des séries !!! il doit être après
Les séries sont entre [] et ensuite le code pour l'image

series: [
{
name: 'Température',
yAxis:0,
type: 'spline',
color: '#ff0000',
lineWidth: 0.5,
data: comArr(outdoortemperature)
},
{
name: 'Point de Rosée',
yAxis:1,
type: 'spline',
color: '#3399FF',
lineWidth: 0.5,
data: comArr(dewpoint)
},
function (chart) {
chart.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30)
.add();
},
]
Station Vantage Pro2+ avec station agricole - Weatherlink - GraphWeather 3.0.15b - Cumulus 1.9.4 - Windows 7/64
Graphique dynamique à partir d'une bd MySql - VP2SQL

Image

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: Fonction: chart.renderer.image

Message par Javier » 03 déc. 2014, 21:12

Saludos Courtil

http://kocher.es/graficos-highcharts/temp_prueba.php

Je crois que dans votre fichier, manque quelques lignes:

1) La partie html
2) La direction des librairies Higcharts

Vous devez ajouter, après la ligne 37, le code suivant:

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<META NAME="SUBJECT" CONTENT="Grafico Vantage Pro Davis">
<META NAME="DESCRIPTION" CONTENT="grafico dinamico">
<META NAME="KEYWORDS" CONTENT=" meteo, lluvia, viento, temperatura, temperatura, station, Vantage, Davis, Pro, Davis Vantage Pro,pression, UV, sol,">
<META NAME="REVISIT-AFTER" CONTENT="5 DAYS">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=9" >
<META NAME="LANGUAGE" CONTENT="ES">
<meta http-equiv="content-type" content="text/plain; charset=ISO-8859-1">
<meta http-equiv="refresh" content="300; http://kocher.es/graficos-highcharts/temp_prueba.php">  
<title>Grafico dinamico temperatura y punto de rocío ultimas 48 horas</title>

      
      <!-- 1. Add these JavaScript inclusions in the head of your page -->
<script type="text/javascript" src="jquery.min.js"></script>           
<script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script> 
<script type="text/javascript" src="http://code.highcharts.com/themes/grid.js"></script>
<script type="text/javascript" src="http://code.highcharts.com/modules/exporting.js"></script>
<script type="text/javascript" src="overlib.js"></script>
<script type="text/javascript" src="overlib_fade.js"></script> 
Saludos desde San Sebastián

Javier
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

courtil
Messages : 54
Enregistré le : 25 mai 2014, 14:31
Localisation : Pas de Calais - France
Contact :

Re: Fonction: chart.renderer.image

Message par courtil » 04 déc. 2014, 12:16

Salut ami Javier,

Merci de votre message.

Sur le site :

http://lecourtilauxepines.eu/


Les pages des graphs se composent de trois scripts :

Exemple :

http://lecourtilauxepines.eu/temperature_48h.php

1er : temperature_48h.php Appel et lancement de la page
2éme: 48h_temperature_inc.php les composants php de la page
3éme : 48h_temperature_txt.php les composants txt de la page

Pourquoi ce choix de programme?

Etant un vieil autodidacte cela me simplifie le travail de composition des scripts.

il me reste à compléter les scripts : PRESSION PRECIPITATIONS VENT

Ensuite je compléterai les scripts par la pagination : MOIS et ANNEE

Il reste donc à faire ... mais comme je suis en Retraite, cela m'occupe.

Merci de votre intervention.

Cordialement

Michel

La Température présente est de 0.1°C
OS : Windows 11
Station Météo : Vantage PRO2
Cumulus version 313.3 version 3148
http://meteo621.free.fr/

Javier
Messages : 263
Enregistré le : 15 févr. 2014, 09:23
Localisation : San Sebastián, España
Contact :

Re: Fonction: chart.renderer.image

Message par Javier » 04 déc. 2014, 13:54

D'accord
Je ai compris.

Je ai visité votre site et je dois dire que je ai aimé; d'autant plus que la première image de la bannière reflète la baie de ma ville, San Sebastián. :D


Saludos desde San Sebastián

Javier
Davis Vantage Pro2 +, Windows 10, Windows 7 (64), Graphweather 3.0.15, Weatherlink 6.0.3, template Pierre-André, template Jachym
Image

courtil
Messages : 54
Enregistré le : 25 mai 2014, 14:31
Localisation : Pas de Calais - France
Contact :

Re: Fonction: chart.renderer.image (RESOLU)

Message par courtil » 09 déc. 2014, 12:11

courtil a écrit :Bonjour à tous,

J'ai commencé à paramétrer les Graphs Dynamiques

Le 0°C est positionné.

la fonction "legend " de même.

J'ai installé la fonction : chart.renderer.image en utilisant dans un premier temps les données de Highcharts
la légende m'indique sa création mais pas d'affichage ??

cette fonction est uniquement positionnée sur les graphs températures.

voici une partie du script:

Code : Tout sélectionner

	yAxis:1,
				type: 'spline',
                color: '#3399FF',
				lineWidth: 0.5,
                data: comArr(dewpoint)  
                },
				
			 function (chart) { 

        chart.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30)
            .add();

			},
Merci de vos infos pour rétablir le bon choix.

Cordialement

Michel
OS : Windows 11
Station Météo : Vantage PRO2
Cumulus version 313.3 version 3148
http://meteo621.free.fr/

Répondre