javascript - 如何使用 csv 文件显示分类的 Highcharts 图表

标签 javascript csv highcharts

我正在尝试使用 javascript 通过 Highcharts 显示图表

我已使用 Highcharts modules/data.js 读取了 csv 文件,并且正在显示 Chart我的容器内没有问题。 enter image description here

mychart = Highcharts.chart('container', {
  chart: {
    type: 'scatter',
    zoomType: 'xy'
  },
  data: {
    csv: csv,
    startColumn:0,
    endColumn:2
  },
  title: {
    text: 'DATA'
  },
  xAxis: {
    title: {
      text: 'X'
     },
  },
  yAxis: {
    title: {
      text: 'Y'
    }
  }
});

基本上,csv 有 3 列,每行用逗号分隔属性和换行符。

x, y, category
data1, data2, data3
data1, data2, data3
data1, data2, data3
data1, data2, data3
data1, data2, data3
...

第一列和第二列是点坐标,第三列是类别。我想根据第三行中的类别之一显示点。

我不知道如何显示按 category 列分类的所有 xy 点。

最佳答案

您可以将类别视为 Highcharts 中的一个系列。所以你需要创建一个像这样的数组

series: [{
  name: 'Series ' + categoryNumber,
  data: [] // array with x and y coordinates
}, {
  name: ''
  data: []
}]

然后你就可以解析你的csv文件了,没有数据模块会更容易。

var rows = csv.split('\n');

var series = [];
rows.forEach(row => {
  var cells = row.split(',').map(Number);
  var serie = series[cells[2]];

  if (!serie) {
    serie = series[cells[2]] = {data: []};
  }

  serie.data.push([cells[0], cells[1]]);
})

Highcharts.chart('container', {
  chart: {
    type: 'scatter'
  },

  series: series

});

示例:http://jsfiddle.net/w7ug4dbw/

对于图表系列来说,重要的是您的类别中不会有间隙 - 因此,如果您有类别 0 - 2,则需要拥有所有 0、1、2 类别的数据 - 如果没有,那么您在使用图表时可能会收到错误。为了克服这个问题,您需要循环遍历系列数组并删除所有间隙。

关于javascript - 如何使用 csv 文件显示分类的 Highcharts 图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42133279/

相关文章:

javascript - 使用 CSS 和 jQuery 的下拉菜单问题

javascript - 当主机站点使用 RequireJS 时,将 KnockoutJS 作为第三方包的一部分加载时出错

javascript - 从 CSV 加载 Google Annotation Chart

javascript - CSS/JavaScript : hidden div does not take full width after being shown

Javascript 在 HTML 中搜索关键字,用 em 标签包围它们

javascript - 我们不能在 React.js 的数组中迭代material-ui吗?

c - 打印时在 C 中分隔值的最佳/常见做法

csv - 如何读取robot框架中的csv文件进行数据验证

javascript - highcharts 未显示

javascript - 在 jQuery 工具提示中使用动态 ID 渲染 Highchart