【发布时间】:2018-03-01 17:06:33
【问题描述】:
我正在使用 Highcharts 绘制直方图。您可以在此处查看当前示例:
https://jsfiddle.net/5o73tccm/4/
var data = [35,337,84,80,54,171,73,86,109,77,99,64,128,73,62,65,87,31,60,50,99,82,191,97,91,47,94,87,107,78,77,79,110,84,257,71,95,137,100,133,76,62,36,41,27,106,181,99,40,100,150,113,196,45,167,82,68,37,63,48,83,168,175,79,64,78,82,67,51,49,76,62,36,41,27,99,76,38,63,73,44,149,130,58,175,109,94,128,200,79,137,159,54,125,100,111,66,79,171,82,141,72,76,70,93,92,61,97,52];
var numItems = data.length;
Highcharts.chart('container', {
title: {
text: 'Title',
style: {
fontWeight: 'bold',
fontSize: "12px"
}
},
legend: {
enabled: false
},
xAxis: [{
title: { text: '' },
opposite: true,
alignTicks: false,
visible: false
}, {
title: { text: 'Axis Data' },
alignTicks: false,
opposite: false,
}],
yAxis: [{
title: { text: '' },
opposite: true,
visible: false
}, {
title: { text: 'Percentage' },
opposite: false,
labels: {
formatter: function () {
var number = ((this.value / numItems) * 100);
return Highcharts.numberFormat(number, 1) + '%';
}
}
}],
series: [{
name: 'Histogram',
type: 'histogram',
xAxis: 1,
yAxis: 1,
baseSeries: 's1',
zIndex: -1,
tooltip: {
pointFormatter: function () {
var number = ((this.y / numItems) * 100);
return 'Number <b>' + this.y + '</b><br/>Percentage <b>' + Highcharts.numberFormat(number, 1) + ' %</b>';
}
}
}, {
name: 'Data',
type: 'scatter',
data: data,
id: 's1',
marker: {
radius: 0
}
}]
});
悬停在每一列上会给出该列相对于整个数据集的百分比值。在这种情况下是:
1.8% / 20.2% / 38.5% / 18.3% / 9.2% / 7.3% / 2.8% / 0.9% / 0.9%
我希望在此图表中添加样条图显示:
https://www.highcharts.com/docs/chart-and-series-types/spline-chart
使用基于上述每个百分比相加的累积数字,因此在这种情况下,曲线所需的数字将是:
0 / 1.8 / 22 / 60.5 / 78.8 / 88 / 95.3 / 98.1 / 99 / 100
由于 HighCharts 正在处理原始数据,我不确定如何从每列中获取这些百分比值以在曲线中用于样条显示,因此我正在寻找有关如何执行此操作的建议,或者如果这是甚至可能?
【问题讨论】:
标签: javascript highcharts