je continu sur ma lancée pour insérer dans mon graphique une courbe qui compare les cumuls mensuels avec les normales. Pou ce faire je me suis inspiré du tuto Pluviométrie Mensuelle Comparée aux Normales 1981-2010 du forum "Vos tutoriels".
Est ce un hasard je ne sais pas. Les écarts de mon graphique (écart entre le cumul et la normale) sauf janvier ne correspondent à rien, je ne sis pas d'ou viennent ces chiffres.
Est ce que le problème ne viendrait pas de ça.
pour la boucle des normales.
Code : Tout sélectionner
<?php
// appel du script de connexion
require("mysql_connect.php");
$conn=mysqli_connect($server,$user,$pass,$db);
$start=mktime(0,0,0,1,1,date("Y"));
$stop =mktime(0,0,0,1,1,date("Y")+1);
$sql="SELECT substr(recdatetz, 5, 2),sum(Rain_jour) FROM MiniMaxidata
WHERE tstamp > '$start'
AND tstamp <= '$stop'
AND Rain_jour
group by 1
union
SELECT substr(recdatetz, 5, 2),null FROM MiniMaxidata
WHERE tstamp > '$start'
AND tstamp <='$stop'
AND substr(recdatetz, 5, 2) not in (SELECT substr(recdatetz, 5, 2)
FROM MiniMaxidata
WHERE tstamp > '$start'
AND tstamp <= '$stop'
AND Rain_jour)
group by 1
order by 1";
$query=mysqli_query($conn,$sql);
$i=0;
while($list=mysqli_fetch_array($query)) {
$Pluie[$i]=$list[1]*1;
if($Pluie[$i]==0) {$Pluie[$i]= null;}
if (date("I",time())==0) {
$time[$i]=($list['tstamp']+3600)*1000;
}
else {
$time[$i]=($list['tstamp']+7200)*1000;
}
$Rain_jour[$i]=$list['SUM(Rain_jour)']*1;
if (date("m",$time[$i]/1000)==1) {$Normale[$i]=69.4;}
elseif (date("m",$time[$i]/1000)==2) {$Normale[$i]=56.1;}
elseif (date("m",$time[$i]/1000)==3) {$Normale[$i]=65.1;}
elseif (date("m",$time[$i]/1000)==4) {$Normale[$i]=53.9;}
elseif (date("m",$time[$i]/1000)==5) {$Normale[$i]=63.3;}
elseif (date("m",$time[$i]/1000)==6) {$Normale[$i]=63.2;}
elseif (date("m",$time[$i]/1000)==7) {$Normale[$i]=70.7;}
elseif (date("m",$time[$i]/1000)==8) {$Normale[$i]=64.2;}
elseif (date("m",$time[$i]/1000)==9) {$Normale[$i]=66.9;}
elseif (date("m",$time[$i]/1000)==10) {$Normale[$i]=71;}
elseif (date("m",$time[$i]/1000)==11) {$Normale[$i]=67.2;}
elseif (date("m",$time[$i]/1000)==12) {$Normale[$i]=74.8;}
$Ecart[$i]=$Pluie[$i]-$Normale[$i];
$i++;
}
$Normale=array(69.4, 56.1, 65.1, 53.9, 63.3, 63.2, 70.7, 64.2, 66.9, 71, 67.2, 74.8,null,null);
$Time=array("jan","fev","mar","avr","mai","juin","jui","août","sep","oct","nov","déc","","année");
$Pluie=array($Pluie[0],$Pluie[1],$Pluie[2],$Pluie[3],$Pluie[4],$Pluie[5],$Pluie[6],$Pluie[7],$Pluie[8],$Pluie[9],$Pluie[10],$Pluie[11],$Pluie[12],null,null);
$Normale_an= 785.8;
$Pluie_an = $Pluie[0]+$Pluie[1]+$Pluie[2]+$Pluie[3]+$Pluie[4]+$Pluie[5]+$Pluie[6]+$Pluie[7]+$Pluie[8]+$Pluie[9]+$Pluie[10]+$Pluie[11]+$Pluie[12];
?>
<!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="Graphique Vantage Pro Davis">
<META NAME="DESCRIPTION" CONTENT="graphique dynamique">
<META NAME="KEYWORDS" CONTENT=" mto, pluie, vent, temprature, temperature, station, Vantage, Davis, Pro, Davis Vantage Pro,pression, UV, soleil,">
<META NAME="REVISIT-AFTER" CONTENT="5 DAYS">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=9" >
<META NAME="LANGUAGE" CONTENT="FR">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Météo Jarny - graphique dynamique température des dernières 48 heures</title>
<!-- 1. Add these JavaScript inclusions in the head of your page -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/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="jquery/overlib.js"></script>
<script type="text/javascript" src="jquery/overlib_fade.js"></script> -->
<script type="text/javascript">
function comArr(unitsArray) {
var outarr = [];
for (var i = 0; i < dTime.length; i++) {
outarr[i] = [dTime[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: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
shortMonths: ['Jan.', 'Fév.', 'Mars', 'Avr.', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc'],
exportButtonTitle: "Exporter",
printButtonTitle: "Imprimer",
rangeSelectorFrom: "Du:",
rangeSelectorTo: "A:",
rangeSelectorZoom: "Période:",
resetZoom: 'RAZ Zoom',
resetZoomTitle: 'Initialiser 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",
printButtonTitle: "Imprimer le graphique",
loading: "Chargement...",
thousandsSep: ""
}
});
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
zoomType: 'x',
type: 'column',
margin: [ 50, 85, 75, 80],
backgroundColor: {
linearGradient: [0, 500, 500, 0],
stops: [
[0, 'rgb(158, 171, 252)'],
[1, 'rgb(255, 255, 255)']
]
},
},
title: {
text: 'Comparaison des cumuls mensuels de l\'année 2014'
},
subtitle: {
text: 'Source: Météo Jarny',
x: -20
},
credits: {
text: '© Météo Jarny',
href: 'http://www.meteo-jarny.com'
},
xAxis: {
categories: [
'Jan',
'Fév',
'Mar',
'Avr',
'Mai',
'Juin',
'Juil',
'Août',
'Sep',
'Oct',
'Nov',
'Déc',
'',
'Année'
],
labels: {
rotation: 0,
align: 'center',
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: [{
title: {
text: 'Cumuls mensuels',
},
labels: {
formatter: function() {
return this.value +' mm';
},
style: {
color: '#000000'
}
},
},
{
title: {
text: 'Cumul annuel',
},
labels: {
formatter: function() {
return this.value +' mm';
},
style: {
color: '#000000'
}
},
opposite: true
}],
legend: {
enabled: true,
x: 0
},
tooltip: {
pointFormat: '{series.name}: <b>{point.y}</b><br/>',
valueSuffix: ' mm',
shared: true
},
plotOptions: {
column: {
grouping: false,
shadow: false,
}
},
series: [{
name: 'Cumuls mensuels',
color: '#688dfe',
data: comArr(dPluie),
pointPadding: -0.2
},{
type: 'spline',
color: '#ff8c00',
name: 'Normale',
data: comArr(dNormale),
lineWidth: 0,
marker :{
enbled: true,
symbol: 'circle',
radius: 3},
pointPadding: -0.3
},{
name: 'Ecart',
id : 'Ecart',
type: 'column',
color: {
linearGradient: { x1: 0, x2: 0, y1: 1, y1: 1.5 },
stops: [
[0, 'rgba(255, 0, 0, .9)'],
[1, 'rgba(255, 255, 0, .8)']
]
},
data: comArr(Ecart),
},{
name: 'Cumul annuel',
color: '#688dfe',
data: [null,null,null,null,null,null,null,null,null,null,null,null,null, <?php echo $Pluie_an;?>],
pointPadding: -0.2,
yAxis: 1
},{
name: 'Normale',
color: '#84e598',
data: [null,null,null,null,null,null,null,null,null,null,null,null,null,<?php echo $Normale_an;?>],
yAxis: 1
}]
});
});
});
eval(<?php echo "'var dTime = ".json_encode($Time)."'" ?>);
eval(<?php echo "'var dPluie = ".json_encode($Pluie)."'" ?>);
eval(<?php echo "'var dNormale = ".json_encode($Normale)."'" ?>);
eval(<?php echo "'var dNormale_an = ".json_encode($Normale_an)."'" ?>);
eval(<?php echo "'var dPluie_an = ".json_encode($Pluie_an)."'" ?>);
eval(<?php echo "'var Ecart = ".json_encode($Ecart)."'" ?>);
</script>
<style type="text/css">
.style1 {
text-align: left;
}
</style>
</head>
<body>
<table width="500" border="0" align="center">
<tr>
<td>
<div id="container" style="width: 600px; height: 300px; margin: 0 auto" class="style1"></div>
<div align="center"></div>
</td></tr></table>
</body>
</html>
Maintenant, peut-on combiné ces deux boucles, le problème vient-il de ça ou d'autre chose.