我正在将数据模块用于HighCharts。我尝试提供每个系列的合计数据的另一列,然后在工具提示中显示该合计,例如“至少每周一次:10(n = 190)”。
注意:总计不一定是点的总和,这就是为什么相对于使用point.total或sum()在数据中将其作为单独的列提供的原因。
从文档看来,我可以使用seriesMapping对象,该对象允许将列自定义分配给特定的点选项。但是,我只能让合计显示其中一项。
例如,如何为“ WiFi热点”系列的“每天”和“至少每周”获得“(n = 190)”?目前,它仅显示“至少每周”。它为其他类别显示“每天:21(n = undefined)”。
任何帮助将不胜感激,谢谢!
这是我的数据...
<pre id="data">Categories,At Least Weekly,Every Day
WiFi Hotspot,10,21,190
myConnect.com Website,18,15,200
MMI Connect App,15,15,191
External Voice Recognition,18,12,300
</pre>
这是我的HighCharts定义...
Highcharts.chart('container', {
credits: {
enabled: false
},
chart: {
type: "bar"
},
title: {
text: "Feature Usage"
},
tooltip: {
formatter: function () {
return this.series.name + ': ' + this.y + ' (n=' + this.point.mytotal + ')';
}
},
xAxis: {
categories: []
},
yAxis: {
title: {
text: "Percent"
}
},
data: {
csv: document.getElementById('data').innerHTML,
seriesMapping: [{
mytotal: 3 // total is in column 3
}]
},
plotOptions: {
series: {
stacking: 'normal'
}
}
});
它在jsfiddle中... https://jsfiddle.net/gregality/6eens9bv/
最佳答案
您有2个系列,因此需要2个映射:
seriesMapping: [{
x:0,
y:1,
mytotal: 3
},{
x:0,
y:2,
mytotal: 3
}]
而对于1系列,
x:0
和y:1
的默认映射适用。如果添加第二个映射,则需要显式声明所有映射。另外,您的CSV已被格式化。您缺少第四列的标题。
https://jsfiddle.net/6eens9bv/4/
关于javascript - 在数据模块中使用HighCharts seriesMapping读取总计列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42008344/