javascript - 从 HighCharts 中的 JSON 动态添加类别和系列

标签 javascript jquery json highcharts

请考虑这个JSON:

[
   {
      "Categories": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
   },
   {
      "SeiresName": "Ava",
      "Data": ["49.9", "71.5", "106.4", "129.2", "144.0", "176.0", "135.6", "148.5", "216.4", "194.1", "95.6", "54.4"]
   },
   {
      "SeiresName": "Nima",
      "Data": ["83.6", "78.8", "98.5", "93.4", "106.0", "84.5", "105.0", "104.3", "91.2", "83.5", "106.6", "92.3"]
   },
   {
      "SeiresName": "Arian",
      "Data": ["48.9", "38.8", "39.3", "41.4", "47.0", "48.3", "59.0", "59.6", "52.4", "65.2", "59.3", "51.2"]
   }
]

我想创建一个柱形图表并添加写入代码:

   $(function () {
        $.getJSON('JSON Data/ColumnchartWithSeries.json', function (data) {
            console.log(data);
            $('#container').highcharts({
                chart: {
                    type: 'column'
                },
                title: {
                    text: 'Title'
                },
                xAxis: {
                    categories: [],
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'Y-Axis Title'
                    }
                },
                legend: {
                    reversed: true
                },
                series: [{}]
            });
        });
    });

我不知道如何分配类别并动态添加系列。我该如何做到这一点?

谢谢

最佳答案

您必须处理 JSON 字符串

var categories = []; //categories array to highchart
var seriesData = []; //series object to highchart

for (var i = 0; i < jsondata.length; i++) {
  if (jsondata[i].Categories) {
    categories = jsondata[i].Categories.replace(/\[|]|'/g, '').split(',')
  }
  if (jsondata[i].SeiresName) {
    seriesData.push({
      name: jsondata[i].SeiresName,
      data: JSON.parse(jsondata[i].Data)
    })
  }
}

Fiddle工作演示

更新 JSON 的变化 数据相应更新

for (var i = 0; i < jsondata.length; i++) {
  if (jsondata[i].Categories) {
    categories = jsondata[i].Categories
  }
  if (jsondata[i].SeiresName) {
    seriesData.push({
      name: jsondata[i].SeiresName,
      data: jsondata[i].Data.map(Number)
    })
  }
}

Updated Fiddle

关于javascript - 从 HighCharts 中的 JSON 动态添加类别和系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47131899/

相关文章:

javascript - 标记簇 - 传单 - 无法正常工作

javascript - 如何在不验证电子邮件或电话的情况下确认 Cognito 用户池中的用户?

javascript - 使用 Javascript 选择特定单词?

javascript - 如何通过 ajax 调用使用 jquery 数据表

json - 使用 sqlx 包映射到 JSON 的行

javascript - 在比较函数中设置 sort_by

javascript - 使用 JQuery 验证插件的条件验证

javascript - 如何禁用日期控制按钮的 FullCalendar onClick 功能?

javascript - 使用不同级别的节点解析 JSON

php - 将 JSON 从 PHP 返回到 JavaScript?