javascript Highcharts数据API,用于使用datetime和x轴与y轴匹配的线图

g2ieeal7  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(75)

我在使用highcharts填充和匹配x轴和y轴时遇到问题。
我不确定highcharts如何处理数据,但我的想法是,在x轴上填充上周的日期,然后在Y轴上收集当天的总金额。
我的数据将有x轴和y轴的坐标和名称。

**问题:**我的问题是我的数据不一致。原因是,对于某个特定日期,我可能没有任何交易。因此,该日期没有交易。

问题1:有没有办法解决这个问题?

问题二

我可以使用highcharts 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"
          ]
       }
    ]
6kkfgxo0

6kkfgxo01#

你的问题不是很清楚,我不确定这是否会帮助其他人,但我对多维数组和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']
},

我相信这与你试图创建的两个数据示例相匹配。你可能想循环遍历类别(而不是使用内爆),这样你就可以将它们命名为Apr,May之类的东西。

相关问题