与Django的钟形曲线不起作用

时间:2017-11-30 11:40:11

标签: django highcharts

我正在尝试使用django和highcharts创建钟形曲线,但它看起来并不像我预期的那样 这是我想要的图像enter image description here

目前我正在研究这个

var data = [ 2.7, 2.7, 3, 3.4, 3.1, 2.3, 3, 2.5, 2.6, 3, 2.6, 2.3,
2.7, 3, 2.9, 2.9, 2.5, 2.8, 3.3, 2.7, 3, 2.9, 3, 3, 2.5, 2.9, 2.5, 3.6,
3.2, 2.7, 3, 2.5, 2.8, 3.2, 3, 3.8];

Highcharts.chart('container', {

title: {
    text: 'Bell curve'
},

xAxis: [{
    title: { text: 'Data' }
}, {
    title: { text: 'Bell curve' },
    opposite: true
}],

yAxis: [{
    title: { text: 'Data' }
}, {
    title: { text: 'Bell curve' },
    opposite: true
}],

series: [{
    name: 'Bell curve',
    type: 'bellcurve',
    xAxis: 1,
    yAxis: 1,
    baseSeries: 1,
    zIndex: -1
}, {
    name: 'Data',
    type: 'scatter',
    data: data,
    marker: {
        radius: 1.5
    }
   }]
 });

Click here to see

the problem which I'm facing are following:
1. How to remove scatter 
2. How to display average point on curve.
3. How to display gradient like given in image.

1 个答案:

答案 0 :(得分:2)

在阅读Highcharts的API文档后,回答您的问题很简单。 1.要从视图中删除散布系列,请将其visibleshowInLegend属性设置为false

{
    name: 'Data',
    type: 'scatter',
    data: data,
    marker: {
      radius: 1.5
    },
    visible: false,
    showInLegend: false
  }
  1. 如何在曲线上显示平均点有点复杂。首先,你需要得到平均值。这可以通过javascript(取自this非常简洁的代码)来实现:

    var sum = data.reduce(function(a,b){return a + b;}); var avg = sum / data.length;

  2. 然后你需要在实际图表上显示这个。有很多选项,但散点或Highstock标志可能是最好的选择。

    1. 显示渐变非常简单。您可以使用系列的color属性并设置渐变选项并根据自己的喜好设置颜色:

      { name: 'Bell curve', type: 'bellcurve', xAxis: 1, yAxis: 1, baseSeries: 1, zIndex: -1, color: { linearGradient: { x1: 0, y1: 0, x2: 1, y2: 0 }, stops: [ [0, 'rgb(255, 255, 255)'], [1, 'rgb(200, 200, 255)'] ] } }