Date décalée sur xAsis

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

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

Re: Date décalée sur xAsis

Message par Météo Villarzel » 09 déc. 2014, 19:35

tu peux décaler les colonnes avec
pointPlacement: 2,

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

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Date décalée sur xAsis

Message par JP54 » 10 déc. 2014, 16:52

Je viens d'essayer pointPlacemnt : '2' ça n'a pas décaler les colonnes
http://www.meteo-jarny.com/graphiques-d ... 03-gel.php
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 11 déc. 2014, 21:06

Je ne sais pas si tu as remarqué, mais c'est ton échelle qui glisse, cela signifie que tu as un problème avec les dates, peut être des dates manquantes ou ou une définition de ton axe des X qui ne correspond pas à ce que tu souhaites faire.
Je pense que tu fais une erreur en voulant utiliser une échelle datetime plutôt qu'une échelle fixe de 2004 à 2011

Jean
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

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

Re: Date décalée sur xAsis

Message par Météo Villarzel » 11 déc. 2014, 23:28

Salut Pascal,

pourquoi rajoutes-tu 7200 à la date ?
Tu n'as pas besoin de l'heure

$dtime[$i]=($list['tstamp']+7200)*1000;

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

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 12 déc. 2014, 17:46

Météo Villarzel a écrit :Salut Pascal,

pourquoi rajoutes-tu 7200 à la date ?
Tu n'as pas besoin de l'heure

$dtime[$i]=($list['tstamp']+7200)*1000;

A+
Salut Pierre-André, salut Pascal,
Pierre-André, tu n'as pas tort, mais dans le cas présent, tu n'as même besoin que de l'année, tu as un mois sélectionné, le même pour chaque année, donc ça ne sert à rien de dire c'est le mois de janvier, février ou mars, c'est un élément qui représente l'année, pas un mois dans l'année, sa représentation quelle que soit sa position (1er, ...6ème mois...) doit toujours représenter l’année, et ce, toujours au même endroit.
Par exemple la représentation de mars n'est pas celle du troisième mois de l'année (ce qui le mettrait sur une échelle de temps avec même uniquement les jours en 59ème position 31 j en 01, 28 en 02 la largeur de l'histogramme n'étant qu'un trompe l'oeil)) , mais celle de l'année elle-même.
J'espère m'être fait comprendre car ça n'est pas facile d'expliquer que l'échelle utilisée n'a rien à voir avec celle qui devrait l'être.
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Date décalée sur xAsis

Message par JP54 » 12 déc. 2014, 18:15

Bonsoir Pierre André, bonsoir Jean,
Non effectivement, je n'ai pas besoin de l'heure. Une échelle fixe sans doute, je ne sais pas trop, j'ai beaucoup de mal avec le php. Une échelle fixe qui commence en 2004 oui mais donnés continues, l'arrêtée à quelle date, ma BD est cours de chargement.
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: Date décalée sur xAsis

Message par PascalWMR » 12 déc. 2014, 21:07

Bonsoir tous le monde,

Voila voila, j'ai cogité :idea: un petit truc :geek: .

Bon c'est sur, faut peaufiner le design, la couleur, les jolis dessins, le tooltip etc etc.

Ce que je donne là, c'est du code brut.
Ne pas oublier de changer les chemins des scripts et des librairies.
Il est fait avec HIGHCHARTS vu qu'il n'y a pas besoin de navigation.

Code : Tout sélectionner

<?php
// appel du script de connexion
require("../Scripts/mysqli_connect.php");                     

$sql = "SELECT substr(recdateTZ,1,4) AS Annee, COUNT(*) AS NBJG FROM MiniMaxidata WHERE substr(recdateTZ,5,2)='02' and t_out_mini<=0 group by substr(recdateTZ,1,6)";  
$query = mysqli_query($conn,$sql);                   
$i=0;
$NBJG02 = array();
while ($list = mysqli_fetch_assoc($query)) {      

$Annee[$i]=$list['Annee']*1;
$NBJG[$i]=$list['NBJG']*1;

$NBJG02[] = array($Annee[$i],(float)$NBJG[$i]);

$i++;
} 	
?>


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

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Document sans titre</title>
<script type="text/javascript" src="../Scripts/jquery.min.js"></script>           
<script type="text/javascript" src="../Scripts/Highcharts/js/highcharts.js"></script> 
<script type="text/javascript" src="../Scripts/Highcharts/js/highcharts-more.js"></script> 
<script type="text/javascript" src="../Scripts/Highcharts/js/themes/grid.js"></script>
<script type="text/javascript" src="../Scripts/Highcharts/js/modules/exporting.js"></script>
<script type="text/javascript" src="../Scripts/overlib.js"></script>
<script type="text/javascript" src="../Scripts/overlib_fade.js"></script>

<script type="text/javascript"> 

$(function () {
    $('#container').highcharts({
			xAxis: {
			},
			yAxis: [{ // 1er yAxis (numero 0)
				gridLineWidth: 0,
				lineColor: '#B70000',
				lineWidth: 2,
				tickColor: '#B70000',
            	tickWidth: 2,
				labels: {
					formatter: function() {
						return this.value +' J';
					},
					style: {
						color: '#B70000'
					}
				},
				title: {
					text: 'Nombre de jour de gel',
					style: {
						color: '#B70000'
					}
				},

			},  
			],
        series: [{
				name: 'Nombe de jour de gel',
				yAxis: 0,
				type: 'column',
				data: NBJG02,
				}]
    });
});
</script>
</head>

<body>
    	<div id="container" style="width: 1060px; height: 570px; margin: 0"></div><br>
</body>
</html>
La liste des variables est
Annee pour les années bien sur,
NBJG dans la requete SQL pour le Nombre de Jour de Gel à extraire
NBJG02 déclaré comme tableau pour le Nombre de Jour de Gel du mois de février (02),

Le regroupement se fait sur l'année et le mois substr(recdateTZ,1,6) pour extraire tous les mois voulus pour toutes les années présente dans la BDD.

Pour grapher un autre mois, il suffit de changer le chiffre de la clause WHERE substr(recdateTZ,5,2)='02'.


Attention laisser le xAxis tel quel.

Voila plus de problème de décalage.
Le décalage que tu as JP est du à la variable tstamp.
Ammuse toi à décoder tes tstamp ici http://www.timestamp.fr/? et tu aura des surprises.
En effet, tes variables n'indique pas le 1er du mois à 00h00 mais à priori la date et l'heure du dernier jour de gel du mois de chaque année, et c'est ce qui cause le décalage.
Dans tes graphiques, tu n'a pas besoin du tstamp mais uniquement de l'année.

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

JP54
Messages : 331
Enregistré le : 15 févr. 2014, 06:44
Localisation : JARNY Meurthe-et-Moselle (54) Région Lorraine
Contact :

Re: Date décalée sur xAsis

Message par JP54 » 13 déc. 2014, 07:46

Bonjour les mais,
Je me suis servi de timestamp.fr pour convertir les dates en tstamp afin de rentré mes donnés de 2004 à 2011 manuellement dans la BD. Une ligne par jour ou j'ai rentré la température moyenne du jour, les pluviométries journalières, les températures inférieur à 0° et les températures supérieur à 25° et 30°. Ca m'a pris un peu plus de trois semaines. :D
Pour les modifications couleurs etc ça ne devrait pas posé de problèmes, c'est le php qui me pose à chaque fois de gros soucies.
Je suis absent pour la journée, je regarde le code plus en détails et je teste ce soir si je ne rentre pas trop tard ou demain.
merci pour votre aide
Pascal
Station VP2 Weatherlink 5.8.1 VP2SQL 3.0.0.17 NOAAtable 1.0.0.30 Windows 7 Pro
http://www.meteo-jarny.com/

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 08:47

Salut Pascal,
si tu conserves ton xAxis en datetime, tu peux avoir les timestamps unix de tes années ainsi, c'est plus élégant que d'aller les chercher dans un convertisseur (ça fait plusieurs années que je n'ai pas fait de php, donc pas de garantie à 100% car en plus je n'ai pas testé !)

Code : Tout sélectionner

<?php
$j=0;
for ($i = 2006; $i <= 2014; $i++) {
$j++;
$annee[$j]= = strtotime('01-01-'. "'". $i."'"); // on défini le premier du mois à traiter pour chaque année  pour février ce sera ça 01-02- .... 
}
?>
$annee étant un timestamp
Tu aurais aussi pu travailler directement sur ton array en Javascript.
J'espère avoir été à peu près clair.


Jean

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: Date décalée sur xAsis

Message par PascalWMR » 13 déc. 2014, 08:59

Bonjour tous le monde

Çà m'a turlupiner toute la nuit, mon code est bon :) mais pas bon :cry:

Je m'explique

Le code et surtout la requête SQL que j'ai donné fonctionne à condition qu'il y ai des jours de gel sur le mois que l'on teste. Si, comme c'est le cas cette année au mois de novembre, il n'a pas gelé alors qu'il aurait du, le graphique zappe carrément l'année concernée. Pas bon du tout :cry: :cry: :cry:

Mais voila après avoir vu défiler 01h33, 02h47, 03h21, ho miracle, :idea: la solution me viens à 04h28. Je savais bien que j'avais déjà vu un truc de ce genre sur ce forum. je ne dirais pas ou, car j'ai pas réussi à le retrouver. Mais je m'en sert pour ce graphique http://www.monsite-meteo.eu/Page/graphd ... ales_1.php.

Don voici le code modifié :mrgreen:

Code : Tout sélectionner

<?php
// appel du script de connexion
require("../Scripts/mysqli_connect.php");                     

$sql = "SELECT SUBSTR(recdateTZ,1,4) AS Annee ,COUNT(*) AS NBJG FROM MiniMaxidata WHERE SUBSTR(recdateTZ,5,2)='11' AND t_out_mini <= 0 GROUP BY SUBSTR(`recdateTZ`,1,6) UNION SELECT SUBSTR(recdateTZ,1,4), null FROM MiniMaxidata WHERE SUBSTR(recdatetz, 1, 4) NOT IN (SELECT SUBSTR(recdatetz, 1, 4) FROM MiniMaxidata WHERE SUBSTR(recdateTZ,5,2)='11' AND t_out_mini <= 0) GROUP BY SUBSTR(`recdateTZ`,1,6)";  
$query = mysqli_query($conn,$sql);                   
$i=0;
$NBJG02 = array();
while ($list = mysqli_fetch_assoc($query)) {      

$Annee[$i]=$list['Annee']*1;
if ($list['NBJG'] == NULL) {$NBJG[$i]=0;}
else {$NBJG[$i]=$list['NBJG']*1;}

$NBJG02[] = array($Annee[$i],(float)$NBJG[$i]);

$i++;
} 	
?>


<script type="text/javascript"> 
eval(<?php echo  "'var NBJG02 =  ".json_encode($NBJG02)."'" ?>);
  
</script>
JP pour tes tstamp entrés manuellement, ça va être un peu plus compliqué si pour chaque ligne tu n'a pas également entré le recdateTZ.
Il faudrait alors extraire le mois et l'année de ton tstamp. En PHP, c'est pas compliqué mais ma requête ne fonctionne plus dans tons cas :cry: .

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Répondre