我在使用highcharts填充和匹配x轴和y轴时遇到问题。
我不确定highcharts如何处理数据,但我的想法是在x轴上我填充上周的日期,然后在Y轴上收集当天的总金额。
我的数据将包含x轴和y轴的坐标以及名称。
问题: 我的问题是我的数据不一致。原因是,对于特定日期,我可能没有任何交易。因此,该日期没有交易。
问题1 有没有办法解决这个问题?
问题2
我可以使用highchart xAxis选项自动生成日期时间,然后匹配我的数据集中的这些点吗?
我不限于更改我的数据结构,任何有关如何去的建议 非常感谢。
数据集格式参考
https://jsfiddle.net/f2bnc2ox/
看看我的jsfiddle
https://jsfiddle.net/chapskev/ao1m9s9r/3/
[
{
"name":"Open Air Market",
"data":[
[
"2016-06-16",
450
],
[
"2016-06-17",
1980
],
[
"2016-06-18",
1650
],
[
"2016-06-19",
420
],
[
"2016-06-20",
630
],
[
"2016-06-21",
660
]
],
"keys":[
"name",
"y"
]
},
{
"name":"Parking Fee",
"data":[
[
"2016-06-17",
300
],
[
"2016-06-21",
1000
]
],
"keys":[
"name",
"y"
]
},
{
"name":"Fisheries Daily Revenue",
"data":[
[
"2016-06-21",
200
]
],
"keys":[
"name",
"y"
]
}
]
答案 0 :(得分:0)
你的问题不是很清楚,而且我不确定这会对其他人有什么帮助,但是我对多维数组和HighCharts做了很多,所以我觉得我要刺了一下在帮助。假设您的数据数组名为$ aData(例如代码)。
//INIT VARS
$cSeries = '';
$cXAxis = '';
$bAxis = true;
//LOOP TO BUILD SERIES
foreach ($aData AS $nPos => $aSet) {
//FIRST PASS? BUILD AXIS
if ($bAxis) {
$cXAxis .= "xAxis: {\n" .
" categories: ['" . implode("','", array_keys($aSet['data'])) . "']\n" .
"}, ";
$bAxis = false; //NEED ONLY ONCE
}
$cSeries .= ", {\n" .
" name: '" . $aSet['name'] . "',\n" .
" data: [" . implode(",", $aSet['data']) . "]\n" .
"}";
}
$cSeries = substr($cSeries, 2); //REMOVE LEADING COMMA
$cOutput = "series: [" . $cSeries . "]\n" . $cXAxis;
最后,$ cOutput等于
series: [{
name: 'A revenue',
data: [7700,5000]
}, {
name: 'B revenue',
data: [390,210]
}]
xAxis: {
categories: ['4','5']
},
这与我相信您要创建的两个数据示例相匹配。您可能想要遍历类别(而不是使用implode),以便您可以将它们命名为Apr,May。