Date décalée sur xAsis
Modérateurs : jturlier, Météo Villarzel
- 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
tu peux décaler les colonnes avec
pointPlacement: 2,
A+
pointPlacement: 2,
A+
-
- 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
Je viens d'essayer pointPlacemnt : '2' ça n'a pas décaler les colonnes
http://www.meteo-jarny.com/graphiques-d ... 03-gel.php
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/
http://www.meteo-jarny.com/
- 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
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
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
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
- 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
Salut Pascal,
pourquoi rajoutes-tu 7200 à la date ?
Tu n'as pas besoin de l'heure
$dtime[$i]=($list['tstamp']+7200)*1000;
A+
pourquoi rajoutes-tu 7200 à la date ?
Tu n'as pas besoin de l'heure
$dtime[$i]=($list['tstamp']+7200)*1000;
A+
- 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
Salut Pierre-André, salut Pascal,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+
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
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
-
- 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
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.
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/
http://www.meteo-jarny.com/
- PascalWMR
- Messages : 323
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
Bonsoir tous le monde,
Voila voila, j'ai cogité un petit truc .
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.
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
Voila voila, j'ai cogité un petit truc .
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>
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
Météo Conflans-en-Jarnisy
-
- 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
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.
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
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.
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/
http://www.meteo-jarny.com/
- 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
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é !)
$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
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- ....
}
?>
Tu aurais aussi pu travailler directement sur ton array en Javascript.
J'espère avoir été à peu près clair.
Jean
- PascalWMR
- Messages : 323
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
Bonjour tous le monde
Çà m'a turlupiner toute la nuit, mon code est bon mais pas bon
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
Mais voila après avoir vu défiler 01h33, 02h47, 03h21, ho miracle, 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é
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 .
A+
Pascal
Çà m'a turlupiner toute la nuit, mon code est bon mais pas bon
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
Mais voila après avoir vu défiler 01h33, 02h47, 03h21, ho miracle, 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é
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>
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 .
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
Météo Conflans-en-Jarnisy