Bonjour,
Je souhaite réaliser un graphique Highcharts de ce style basic column
Mon fichier json renvoyé est le suivant :
Mon script highchart est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part [{"category":["Jan","Fev","Mar","Avr","Mai","Juin","Juil","Aout","Sept","Oct","Nov","Dec"],"name":2010,"val":[30,22,21,13,10,0,0,0,3,16,24,34]},{"name":2011,"val":[30,23,19,8,6,4,0,0,2,14,22,28]},{"name":2012,"val":[28,31,23,16,12,2,0,0,4,16,28,30]},{"name":2013,"val":[33,30,30,17,14,4,0,0,6,15,29,32]},{"name":2014,"val":[34,29,18]}]
Malheureusement ne s'affiche que la légende (les années) et aucun graphe ! Je ne vois pas où est l'erreur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 $(document).ready(function() { var options = { chart: { renderTo: 'container', type: 'column' }, title: { text: 'Consommation pellets', x: -20 //center }, xAxis: { categories: [] }, yAxis: { title: { text: 'Sacs' }, plotLines: [{ value: 0, width: 1, color: '#808080' }] }, tooltip: { formatter: function() { return '<b>'+ this.series.name +'</b><br/>'+ this.x +': '+ this.y; } }, legend: { align: 'center', verticalAlign: 'top', x: -20, y: 25, borderWidth: 0 }, series: [] } $.getJSON('../graphes/data_pellets_an2.php', function(json) { options.xAxis.categories = json[0]['category']; options.series[0] = json[1]; options.series[1] = json[2]; options.series[2] = json[3]; options.series[3] = json[4]; chart = new Highcharts.Chart(options); }); });
Pour info voici ma requête sql :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <?php $host="localhost"; $username=""; $password=""; $db_name="chauffage"; $con=mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql_2010 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs FROM pellets WHERE year(datetime) = '2010' GROUP by mois ORDER by mois"); while($r_2010 = mysql_fetch_array($sql_2010)) { $result_2010['category'] = ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aout', 'Sept', 'Oct', 'Nov', 'Dec']; $result_2010['name'] = $r_2010['annee']; $result_2010['val'][] = $r_2010['tsacs']; } $sql_2011 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs FROM pellets WHERE year(datetime) = '2011' GROUP by mois ORDER by mois"); while($r_2011 = mysql_fetch_array($sql_2011)) { $result_2011['name'] = $r_2011['annee']; $result_2011['val'][] = $r_2011['tsacs']; } $sql_2012 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs FROM pellets WHERE year(datetime) = '2012' GROUP by mois ORDER by mois"); while($r_2012 = mysql_fetch_array($sql_2012)) { $result_2012['name'] = $r_2012['annee']; $result_2012['val'][] = $r_2012['tsacs']; } $sql_2013 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs FROM pellets WHERE year(datetime) = '2013' GROUP by mois ORDER by mois"); while($r_2013 = mysql_fetch_array($sql_2013)) { $result_2013['name'] = $r_2013['annee']; $result_2013['val'][] = $r_2013['tsacs']; } $sql_2014 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs FROM pellets WHERE year(datetime) = '2014' GROUP by mois ORDER by mois"); while($r_2014 = mysql_fetch_array($sql_2014)) { $result_2014['name'] = $r_2014['annee']; $result_2014['val'][] = $r_2014['tsacs']; } $result = array($result_2010, $result_2011, $result_2012, $result_2013, $result_2014); print json_encode($result, JSON_NUMERIC_CHECK); mysql_close($con); ?>
Je ne suis pas expert en la matière, je bidouille !
Merci pour votre aide.
Partager