Bonjour à tous,
j'utilise le bundle pour symfony2.6 obHighchartsBundle. Jusque là aucun soucis, j'arrive bel et bien à utiliser des données et à afficher mes données sur un graphique avec plusieurs axes y et x (2 axes sur y et un seul sur x).
Toutefois, mon seul problèmes maintenant est de pouvoir gérer un intervalle d'heure par heures sur l'axe des x (xAxis).
Je vais tenté d'expliquer correctement ce que je souhaites faire:
j'ai un graphique dont l'axe X affiche un pointage sur des consommations journalières (sur 24h pour être exactes). Donc j'aimerai afficher la tranche horraire sur 24h pour un jour sur l'axe des axis: de 00h00 à 23h00 donc.
Toutefois, réellement dans ma base de données il est peu probable que dans la réalité un technicien fasse un pointage à l'heure exacte, par exemple il peut y avoir un pointage entre 00h00 et 1h00 à 00h36 pourquoi pas et ainsi de suite...aroundDonc ce que j'essaye de faire c'est afficher mes intervalles par tranche horraire sur l'axe des Xaxis (qui est fixe pour le coup), mais mes données doivent bien pointé à leurs heures respectives. Si j'ai un pointage à 00h36, il doit bien apparaître entre la tranche horraire 00h00 et 1h00.
Pour l'instant je n'arrive qu'à afficher mes données en base sur l'axe des xAxis. alors que le résultats souhaité est bel et bien d'afficher ses résultats pour les courbes, mais d'afficher des tranches horraires heures par heures.
Voici le code de mon controller:
$series = array(
array(
'name' => 'Conso ECS',
'type' => 'spline',
'color' => '#003171',
'yAxis' => 1,
'data' => $dataConsoECS, //first query from my repo
),
array(
'name' => 'Consommation Chaleur',
'type' => 'spline',
'color' => '#049372',
'yAxis' => 1,
'data' => $dataConsoChaleur, //second query from my repo
),
array(
'name' => 'Température extérieure',
'type' => 'spline',
'color' => '#FAA945',
'data' => $dataTemperatures, //third query from my repo
),
);
$yData = array(
array(
'labels' => array(
'style' => array('color' => '#FAA945'),
),
'title' => array(
'text' => 'Temperature',
'style' => array('color' => '#FAA945')
),
'opposite' => true,
),
array(
'labels' => array(
'style' => array('color' => '#6C7A89')
),
'gridLineWidth' => 0,
'title' => array(
'text' => 'Consommation',
'style' => array('color' => '#6C7A89')
),
),
);
$ob = new Highchart();
$ob->chart->renderTo('newFlo'); // The #id of the div where to render the chart
$ob->chart->type('linechart');
$ob->title->text('Graphique à 3 échelles');
$ob->xAxis->title(array('text' => "Dates"));
$ob->xAxis->categories($arrayResultHours); //my last query which return an array of datetimes
$ob->xAxis->type('datetime');
$ob->yAxis($yData);
$ob->series($series);
return $this->render('MySpaceMyBundle:MyFolder:graphique.html.twig', array(
'chartChoice' => $chartRender, 'chart' => $ob));
}
ma vue:
<div class="col-sm-11 graphicChart" id="newFlo" style="min-width: 450px; height: 550px; margin:15px"></div>
<script type="text/javascript">
{{ chart(chart) }}
</script>
et mon résultat: http://www.hostingpics.net/viewer.php?id=752736graphique.png
Donc voilà comme vous pouvez le voir, mes tout fonctionne, sauf que je n'arrive pas à afficher des intervalles par tranche horraires tout en gardant mes données. Mes dates dans la base de données sont des datetime.
Je vous avouerai ne pas savoir comment faire ça pour le moment.