В настоящее время у меня есть следующая старшая диаграмма, которая отображает дату начала и выводит значения для следующих 31 дней данных.Кто-нибудь знает, как я могу улучшить это, чтобы включить и дату окончания, чтобы я мог фильтровать данные по меньшим конкретным суммам?На оси X я также пытаюсь отображать только метки, к которым прикреплены данные, и скрывать любые другие.Любая помощь приветствуется.
Мой код выглядит следующим образом:
<script type="text/javascript">
var chart;
$(document).ready(function () {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: '<?php echo $type ?>',
x: -20 //center
},
xAxis: {
categories: [ <? php
$start = $_POST["dateStart"];
$dates = array();
for ($i = 0, $days = date('t', strtotime($start)); $i < $days; ++$i) {
$dates[] = date('Y-m-d', strtotime($start.' + '.$i.' day'));
}
echo "'".implode("', '", $dates)."'"; ?> ]
},
yAxis: {
title: {
text: 'Total Amount'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y;
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [ <? php
foreach($array as $legend = > $data) {
echo '{';
echo "name: '".$legend."',";
$values = array();
for ($i = 0; $i < $days; ++$i) {
$date = date('Y-m-d', strtotime($start.' + '.$i.' day'));
$values[] = isset($data[$date]) ? $data[$date] : 0;
}
echo 'data: ['.implode(', ', $values).'],';
echo '},';
} ?> ]
});
});
Спасибо