我正在尝试使用django和highcharts创建钟形曲线,但它看起来并不像我预期的那样 这是我想要的图像
目前我正在研究这个
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
}
}]
});
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.
答案 0 :(得分:2)
在阅读Highcharts的API文档后,回答您的问题很简单。
1.要从视图中删除散布系列,请将其visible
和showInLegend
属性设置为false
:
{
name: 'Data',
type: 'scatter',
data: data,
marker: {
radius: 1.5
},
visible: false,
showInLegend: false
}
如何在曲线上显示平均点有点复杂。首先,你需要得到平均值。这可以通过javascript(取自this非常简洁的代码)来实现:
var sum = data.reduce(function(a,b){return a + b;}); var avg = sum / data.length;
然后你需要在实际图表上显示这个。有很多选项,但散点或Highstock标志可能是最好的选择。
显示渐变非常简单。您可以使用系列的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)']
]
}
}