Date décalée sur xAsis
Modérateurs : jturlier, Météo Villarzel
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
Bonsoir,
Question de procédure du forum :
Quand les problèmes sont résolus personne ne met-il à jour le titre sur le premier post du sujet pour indiquer [Résolu] ?
Bonne soirée
Jean
Question de procédure du forum :
Quand les problèmes sont résolus personne ne met-il à jour le titre sur le premier post du sujet pour indiquer [Résolu] ?
Bonne soirée
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
Bonjour,
Je viens de tester votre requête, mais ça ne fonctionne pas, le nombre de jours de gel est nettement inférieur à ce qu'il devrais être !!!
De plus je ne comprends pas le = '11'
WHERE substr(recdateTZ,5,2)='11'
Si je laisse 11 je n'ai aucun jour de gel en 2014, je dois mettre 12, mais le résultat ne corresponds pas quand même
http://www.boock.ch/meteo/graphiques_ph ... el_ans.php
A+
Je viens de tester votre requête, mais ça ne fonctionne pas, le nombre de jours de gel est nettement inférieur à ce qu'il devrais être !!!
Code : Tout sélectionner
<?php
// appel du script de connexion
require("mysqli_connect.php");
$sql = "SELECT substr(recdateTZ,1,4) AS Annee, sum(t_out_mini <= 0) AS NBJG FROM MiniMaxidata WHERE substr(recdateTZ,5,2)='12' GROUP BY 1";
$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++;
}
?>
WHERE substr(recdateTZ,5,2)='11'
Si je laisse 11 je n'ai aucun jour de gel en 2014, je dois mettre 12, mais le résultat ne corresponds pas quand même
http://www.boock.ch/meteo/graphiques_ph ... el_ans.php
A+
- 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
OUPS
J'ai compris, c'est pas le total par ans, mais par mois,
On comprends vite en Suisse si on nous explique longtemps
Voilà, donc pour le total par année
WHERE substr(recdateTZ,1,4)
A+
J'ai compris, c'est pas le total par ans, mais par mois,
On comprends vite en Suisse si on nous explique longtemps
Voilà, donc pour le total par année
WHERE substr(recdateTZ,1,4)
A+
- PascalWMR
- Messages : 332
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
Salut Pierre-André
Par contre, si tu veux le nombre de jours de gel sur toute l'année et pour toutes les années, tu supprime simplement la condition where.
A+
Pascal
Oui avec cette requête, JP voulait afficher le nombre de jours de gel d'un mois donné pour toutes les années. Donc le 11 sert à extraire tous les mois de novembre de toutes les années présente dans la BDD.Météo Villarzel a écrit :OUPS
J'ai compris, c'est pas le total par ans, mais par mois,
On comprends vite en Suisse si on nous explique longtemps
Voilà, donc pour le total par année
WHERE substr(recdateTZ,1,4)
A+
Par contre, si tu veux le nombre de jours de gel sur toute l'année et pour toutes les années, tu supprime simplement la condition where.
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
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
Bonsoir,
je pense que si ça avait été mon site, j'aurais réalisé un script qui reprenne tous les mois et tous les types de valeurs. Le texte de la requête aurait été un peu plus long, on aurait sorti les différentes valeurs pour les douze mois c'est à dire douze lignes (ou treize pour le total grâce au UNION de Pascal). Cela aurait fait créer deux boucles en PHP et rien de plus.
Personnellement, je n'aime pas multiplier les scripts et les requêtes quand on peut l'éviter. L'inconvénient pour quelqu'un qui ne fait pas trop de scripts c'est qu'il y a beaucoup plus de variables à gérer, donc la façon de les nommer est importante pour ne pas se mélanger les crayons.
D'un point de vue temps de réponse, sur cette partie initiale du code, on aurait eu quelques millisecondes de plus et c'est tout. Par contre le passage d'un mois à l'autre ou d'un type de valeur à l'autre aurait été amélioré puisque les données sont déjà présentes.
Je pense aussi que ce serait plus formateur que de faire 12 requêtes par type de valeur. Je sais que c'est peut-être un challenge, mais ne faire que des choses simples n'aide pas à progresser !
Il n'y a rien de compliqué là dedans, seulement un peu de réflexion préliminaire et de soin à apporter à la réalisation ... et en plus le code est écrit à 80%.
Alors on se lance ou on se dégonfle ??
@+
Jean
je pense que si ça avait été mon site, j'aurais réalisé un script qui reprenne tous les mois et tous les types de valeurs. Le texte de la requête aurait été un peu plus long, on aurait sorti les différentes valeurs pour les douze mois c'est à dire douze lignes (ou treize pour le total grâce au UNION de Pascal). Cela aurait fait créer deux boucles en PHP et rien de plus.
Personnellement, je n'aime pas multiplier les scripts et les requêtes quand on peut l'éviter. L'inconvénient pour quelqu'un qui ne fait pas trop de scripts c'est qu'il y a beaucoup plus de variables à gérer, donc la façon de les nommer est importante pour ne pas se mélanger les crayons.
D'un point de vue temps de réponse, sur cette partie initiale du code, on aurait eu quelques millisecondes de plus et c'est tout. Par contre le passage d'un mois à l'autre ou d'un type de valeur à l'autre aurait été amélioré puisque les données sont déjà présentes.
Je pense aussi que ce serait plus formateur que de faire 12 requêtes par type de valeur. Je sais que c'est peut-être un challenge, mais ne faire que des choses simples n'aide pas à progresser !
Il n'y a rien de compliqué là dedans, seulement un peu de réflexion préliminaire et de soin à apporter à la réalisation ... et en plus le code est écrit à 80%.
Alors on se lance ou on se dégonfle ??
@+
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
Pffffffff..... moi je suis déjà à platjturlier a écrit :Alors on se lance ou on se dégonfle ??
tu entends quoi par " un script qui reprenne tous les mois et tous les types de valeurs" je ne visualise pas le graphique final.
A+
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
Salut Pierre-André,
Pour la visualisation, cela dépend de la façon dont on souhaite présenter les choses, soit un graphique par page par mois comme le graphique que présentait JP avec un sélecteur de mois et un sélecteur de type de données, soit l'ensemble des types de valeurs (température, humidité, pluvio, éolien...) pour chaque mois. Je pencherai (mais c'est personnel ) pour une page de graphique d'un type (12 graphes / page) avec un sélecteur pour afficher le type de valeurs que l'on souhaite. La réalisation en est plutôt simple. L'ultimum serait en fait 1 histogramme par type de valeur, sur lequel on présenterait 12 colonnes avec dans chaque colonne, les années juxtaposées, cela permettrait de comparer instantanément un même type de valeurs par mois et par année, mais là il s'agit d'un challenge, non pas sur la partie récupération des données et conversion Variables PHP => variables JS, ça c'est maitrisé , mais sur la réalisation des graphiques... toujours le même écueil : le nombre de variables et la complexité de la structure de chaque variable dans Highchart et les ( , { , [ , virgules qu'il ne faut ni oublier ni doubler.
Pour ceux qui ne savent pas, il existe dans Firefox une barre d'outils (Web developper) qui permet de voir immédiatement toutes les erreurs de code html, JS, css... et bien d'autres choses. C'est particulièrement utile en Javascript puisque cela pointe directement l'erreur.
Je ne sais pas si tu te souviens, sur mon site MeteOzoir, j'utilisais des histogrammes pour ce type de données, l'idée était là, on n'avait pas encore ni Highchart ni Highstock, et je les avais faites avec jpgraph, mais j'aurai pu peaufiner la réalisation (par exemple, corriger les erreurs de titre)! D'autre part, je pense quand même qu'il vaut mieux concentrer un peu les représentations car plus on a de pages, moins les visiteurs naviguent, c'est d'ailleurs pour cette raison et pour titiller un peu les membres du forum que j'ai fait cette suggestion.
Donc je ne ménagerai pas mes encouragements à ceux qui auront les guts ( traduction polie : le cran... mais il en existe une autre que vous devinerez)
Jean
Pour la visualisation, cela dépend de la façon dont on souhaite présenter les choses, soit un graphique par page par mois comme le graphique que présentait JP avec un sélecteur de mois et un sélecteur de type de données, soit l'ensemble des types de valeurs (température, humidité, pluvio, éolien...) pour chaque mois. Je pencherai (mais c'est personnel ) pour une page de graphique d'un type (12 graphes / page) avec un sélecteur pour afficher le type de valeurs que l'on souhaite. La réalisation en est plutôt simple. L'ultimum serait en fait 1 histogramme par type de valeur, sur lequel on présenterait 12 colonnes avec dans chaque colonne, les années juxtaposées, cela permettrait de comparer instantanément un même type de valeurs par mois et par année, mais là il s'agit d'un challenge, non pas sur la partie récupération des données et conversion Variables PHP => variables JS, ça c'est maitrisé , mais sur la réalisation des graphiques... toujours le même écueil : le nombre de variables et la complexité de la structure de chaque variable dans Highchart et les ( , { , [ , virgules qu'il ne faut ni oublier ni doubler.
Pour ceux qui ne savent pas, il existe dans Firefox une barre d'outils (Web developper) qui permet de voir immédiatement toutes les erreurs de code html, JS, css... et bien d'autres choses. C'est particulièrement utile en Javascript puisque cela pointe directement l'erreur.
Je ne sais pas si tu te souviens, sur mon site MeteOzoir, j'utilisais des histogrammes pour ce type de données, l'idée était là, on n'avait pas encore ni Highchart ni Highstock, et je les avais faites avec jpgraph, mais j'aurai pu peaufiner la réalisation (par exemple, corriger les erreurs de titre)! D'autre part, je pense quand même qu'il vaut mieux concentrer un peu les représentations car plus on a de pages, moins les visiteurs naviguent, c'est d'ailleurs pour cette raison et pour titiller un peu les membres du forum que j'ai fait cette suggestion.
Donc je ne ménagerai pas mes encouragements à ceux qui auront les guts ( traduction polie : le cran... mais il en existe une autre que vous devinerez)
Jean
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
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 : 332
- 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
C'est une bonne idée, mais il ne faut pas trop de donnés différentes sur le même graphiques, j'ai eu des retours il y quelques temps de personnes ne comprenant pas certains de mas graphiques avec 4 ou 5 donnés.
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/
-
- Messages : 332
- 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
Toujours sur mes graphique après une petit pause,je suis en train de faire le graphique des températures moyenne mensuel et annuel.
http://www.meteo-jarny.com/graphique-cl ... p-2004.php
Vous pouvez le constaté, j'ai un petit problème avec la température moyenne annuelle, c'est pas la moyenne qui s'affiche, mais la somme.
Voici la partie PHP
C'est cette ligne qui fait la somme des températures moyennes
comment faire pour avoir la température moyenne de l'année
http://www.meteo-jarny.com/graphique-cl ... p-2004.php
Vous pouvez le constaté, j'ai un petit problème avec la température moyenne annuelle, c'est pas la moyenne qui s'affiche, mais la somme.
Voici la partie PHP
Code : Tout sélectionner
$start=mktime(0,0,0,1,1,date("2004"));
$stop =mktime(23,59,59,12,31,date("2004"));
$sql = "SELECT tstamp, AVG(t_out_moy), substr(recdateTZ,1,6) AS AnneeMois FROM `MiniMaxidata`WHERE tstamp > '$start' AND tstamp <= '$stop' GROUP BY AnneeMois";
$query = mysqli_query($conn,$sql);
$i=0;
while ($list = mysqli_fetch_assoc($query)) {
if (date("I",time())==0) {
$time[$i]=($list['tstamp']+3600)*1000;
}
else {
$time[$i]=($list['tstamp']+7200)*1000;
}
$Temp[$i]=$list['AVG(t_out_moy)']*1;
if (date("m",$time[$i]/1000)==1) {$NormaleMensuelle[$i]=1.5;}
elseif (date("m",$time[$i]/1000)==2) {$NormaleMensuelle[$i]=2.5;}
elseif (date("m",$time[$i]/1000)==3) {$NormaleMensuelle[$i]=6.2;}
elseif (date("m",$time[$i]/1000)==4) {$NormaleMensuelle[$i]=9.5;}
elseif (date("m",$time[$i]/1000)==5) {$NormaleMensuelle[$i]=13.7;}
elseif (date("m",$time[$i]/1000)==6) {$NormaleMensuelle[$i]=16.6;}
elseif (date("m",$time[$i]/1000)==7) {$NormaleMensuelle[$i]=19;}
elseif (date("m",$time[$i]/1000)==8) {$NormaleMensuelle[$i]=18.6;}
elseif (date("m",$time[$i]/1000)==9) {$NormaleMensuelle[$i]=14.7;}
elseif (date("m",$time[$i]/1000)==10) {$NormaleMensuelle[$i]=10.6;}
elseif (date("m",$time[$i]/1000)==11) {$NormaleMensuelle[$i]=5.4;}
elseif (date("m",$time[$i]/1000)==12) {$NormaleMensuelle[$i]=2.4;}
$Ecart[$i]=$Temp[$i]-$NormaleMensuelle[$i];
$i++;
}
$Normale=array(1.5, 2.5, 6.2, 9.5, 13.7, 16.6, 19, 18.6, 14.7, 10.6, 5.4, 2.4,null,null);
$Time=array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre","","Année");
$Temp=array($Temp[0],$Temp[1],$Temp[2],$Temp[3],$Temp[4],$Temp[5],$Temp[6],$Temp[7],$Temp[8],$Temp[9],$Temp[10],$Temp[11],$Temp[12],null,null);
$Normale_an= 10.1;
$Temp_an = $Temp[0]+$Temp[1]+$Temp[2]+$Temp[3]+$Temp[4]+$Temp[5]+$Temp[6]+$Temp[7]+$Temp[8]+$Temp[9]+$Temp[10]+$Temp[11]+$Temp[12];
$Ecart=array($Ecart[0],$Ecart[1],$Ecart[2],$Ecart[3],$Ecart[4],$Ecart[5],$Ecart[6],$Ecart[7],$Ecart[8],$Ecart[9],$Ecart[10],$Ecart[11],$Ecart[12],null);
?>
Code : Tout sélectionner
$Temp_an = $Temp[0]+$Temp[1]+$Temp[2]+$Temp[3]+$Temp[4]+$Temp[5]+$Temp[6]+$Temp[7]+$Temp[8]+$Temp[9]+$Temp[10]+$Temp[11]+$Temp[12];
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/
- 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,
voici le code que j'utilise pour ce graphique
http://www.boock.ch/meteo/graphiques_ph ... e_2014.php
pas sûr que ce soit le meilleurs, j'ai pas mal bidouiller entre différents graphiques mais bon ça fonctionne
voici le code que j'utilise pour ce graphique
http://www.boock.ch/meteo/graphiques_ph ... e_2014.php
pas sûr que ce soit le meilleurs, j'ai pas mal bidouiller entre différents graphiques mais bon ça fonctionne
Code : Tout sélectionner
<?php
// appel du script de connexion
require("mysqli_connect.php");
$sql="select max(tstamp) from data";
$query = mysqli_query($conn,$sql);
$list=mysqli_fetch_array($query);
$start=mktime(0,0,0,1,1,date("2014"));
$stop =mktime(0,0,0,12,31,date("2014"));
$sql = "SELECT tstamp, AVG(t_out_moy), substr(recdateTZ,1,6) AS AnneeMois FROM `MiniMaxidata`WHERE tstamp > '$start' AND tstamp <= '$stop' GROUP BY AnneeMois";
$query = mysqli_query($conn,$sql);
$i=0;
while ($list = mysqli_fetch_assoc($query)) {
if (date("I",time())==0) {
$time[$i]=($list['tstamp']+3600)*1000;
}
else {
$time[$i]=($list['tstamp']+7200)*1000;
}
$t_out_moy[$i]=$list['AVG(t_out_moy)']*1;
if (date("m",$time[$i]/1000)==1) {$NormaleMensuelle[$i]=0.3;}
elseif (date("m",$time[$i]/1000)==2) {$NormaleMensuelle[$i]=1.3;}
elseif (date("m",$time[$i]/1000)==3) {$NormaleMensuelle[$i]=5.3;}
elseif (date("m",$time[$i]/1000)==4) {$NormaleMensuelle[$i]=8.7;}
elseif (date("m",$time[$i]/1000)==5) {$NormaleMensuelle[$i]=13.2;}
elseif (date("m",$time[$i]/1000)==6) {$NormaleMensuelle[$i]=16.6;}
elseif (date("m",$time[$i]/1000)==7) {$NormaleMensuelle[$i]=18.9;}
elseif (date("m",$time[$i]/1000)==8) {$NormaleMensuelle[$i]=18.3;}
elseif (date("m",$time[$i]/1000)==9) {$NormaleMensuelle[$i]=14.3;}
elseif (date("m",$time[$i]/1000)==10) {$NormaleMensuelle[$i]=9.9;}
elseif (date("m",$time[$i]/1000)==11) {$NormaleMensuelle[$i]=4.3;}
elseif (date("m",$time[$i]/1000)==12) {$NormaleMensuelle[$i]=1.4;}
$Ecart[$i]=$t_out_moy[$i]-$NormaleMensuelle[$i];
$i++;
}
$Normale=array(0.3, 1.3, 5.3, 8.7, 13.2, 16.6, 18.9, 18.3, 14.3, 9.9, 4.3, 1.4,null,null);
$time=array("jan","fev","mar","avr","mai","juin","jui","août","sep","oct","nov","déc","","année");
$t_out_moy=array($t_out_moy[0],$t_out_moy[1],$t_out_moy[2],$t_out_moy[3],$t_out_moy[4],$t_out_moy[5],$t_out_moy[6],$t_out_moy[7],$t_out_moy[8],$t_out_moy[9],$t_out_moy[10],$t_out_moy[11],$t_out_moy[12],null,null);
$Ecart=array($Ecart[0],$Ecart[1],$Ecart[2],$Ecart[3],$Ecart[4],$Ecart[5],$Ecart[6],$Ecart[7],$Ecart[8],$Ecart[9],$Ecart[10],$Ecart[11],$Ecart[12],null,null);
$Normale_an= 8.9;
$norm_an = ($t_out_moy[0]+$t_out_moy[1]+$t_out_moy[2]+$t_out_moy[3]+$t_out_moy[4]+$t_out_moy[5]+$t_out_moy[6]+$t_out_moy[7]+$t_out_moy[8]+$t_out_moy[9]+$t_out_moy[10]+$t_out_moy[11]+$t_out_moy[12])/12-8.9;
?>
Code : Tout sélectionner
eval(<?php echo "'var time = ".json_encode($time)."'" ?>);
eval(<?php echo "'var dmoyenne = ".json_encode($t_out_moy)."'" ?>);
eval(<?php echo "'var dNormale = ".json_encode($Normale)."'" ?>);
eval(<?php echo "'var dNormale_an = ".json_encode($Normale_an)."'" ?>);
eval(<?php echo "'var dnorm_an = ".json_encode($norm_an)."'" ?>);
eval(<?php echo "'var Ecart = ".json_encode($Ecart)."'" ?>);