Highchart.js变长输入不起作用

时间:2017-11-11 17:20:59

标签: javascript input highcharts visualization boxplot

此输入适用于highcharts:

data1 = [[2, 3, 3.5, 4], [1, 1.5, 2, 3]]

但是这不是:

data2 = [[2, 3, 3.5, 4, 4.5], [1, 1.5, 2, 3]]

这里唯一的区别是,在第一项中,还有一个数据点。为什么高图无法从中制作箱形图?我认为所有它需要生成一个箱形图,如中位数,四分位数,最小值和最大值都在第二个数据集中。

这是我的代码:

dt = [
  [760, 801, 848, 895, 930],
  [733, 853, 939, 980, 1080],
  [714, 762, 817, 870, 918],
  [724, 802, 806, 871, 950],
  [834, 836, 864, 882, 910]
];


Highcharts.chart('boxcontainer', {

  chart: {
    type: 'boxplot'
  },

  title: {
    text: 'Highcharts box plot styling'
  },

  legend: {
    enabled: false
  },

  xAxis: {
    categories: ['1', '2', '3', '4', '5'],
    title: {
      text: 'Experiment No.'
    }
  },

  yAxis: {
    title: {
      text: 'Observations'
    }
  },

  plotOptions: {
    boxplot: {
      fillColor: '#F0F0E0',
      lineWidth: 2,
      medianColor: '#0C5DA5',
      medianWidth: 3,
      stemColor: '#A63400',
      stemDashStyle: 'dot',
      stemWidth: 1,
      whiskerColor: '#3D9200',
      whiskerLength: '20%',
      whiskerWidth: 3
    }
  },

  series: [{
    name: 'Observations',
    data: dt
  }]

});

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Highcharts接受两种格式的输入数据

  1. 数字数组
  2. 对象数组
  3. 特别是当涉及像boxplot这样的图表需要多个值来绘制图表上的单个点时,这些方法将帮助您实现我们所需的。

    以下是Boxplot的2种方法。 1.具有6或5个值的数组数组。在这种情况下,值对应于x,low,q1,median,q3,high

    data: [
        [0, 3, 0, 10, 3, 5],
        [1, 7, 8, 7, 2, 9],
        [2, 6, 9, 5, 1, 3]
    ]
    
    1. 具有命名值的对象数组。

      data: [{
      x: 1,
      low: 4,
      q1: 9,
      median: 9,
      q3: 1,
      high: 10,
      name: "Point2",
      color: "#00FF00"},{
      x: 1,
      low: 5,
      q1: 7,
      median: 3,
      q3: 6,
      high: 2,
      name: "Point1",
      color: "#FF00FF"}]
      
    2. 所以在第一种方法中,当数组中出现额外的值时会失真,因此就是你的图形。

      如果您希望在数据中有额外的值,这些值不是绘图所必需的,但很重要,您可以采用第二种方法。

      以下是您的参考链接: API:https://api.highcharts.com/highcharts/series.boxplot.data 例如:http://jsfiddle.net/fzwu1ods/