我试图用HighChart做一个非常具体的图表,我希望我会清楚。 我举个例子,我对每个国家都有这样的投票:
法国2是/ 1否
英格兰1是/ 0否
我必须在plotOptions-> series-> dataLabels中显示如下信息:
法国是:2票数/ 66%因为法国共有3票
法国否:1票/ 33%
英格兰是:1票/ 100%因为我们对英格兰总共有1票?
英格兰号:0票/ 0%
在Php / Symfony 3 / Javascript中,我做了类似的事情:
$ob->plotOptions->series(
array(
'dataLabels' => array(
'enabled' => true,
'formatter' => new Expr('function () {
return this.y + "<br/>(" + Math.round(((this.y / '.$numberOfResultsByCountry.') * 100) * 100) / 100 + " %)"
}')
)
)
);
它有效,但是计算结果是错误的,$ numberOfResultsByCountry改变了我的国家的功能,对于法国,值为3,对于英格兰,值为1。
如何为每个结果自定义dataLabels?我检查了doc(http://api.highcharts.com/highcharts#plotOptions.series.dataLabels),看来plotOptions-&gt; series-&gt; dataLabels在这里不接受数组。所以我不知道该怎么做。
我希望我能清楚地解释我的问题。
TY
答案 0 :(得分:1)
我认为您可以将总票数添加为“总票数”。参数,然后使用this.point.total查找此参数。
$(function() {
$('#container').highcharts({
xAxis: {
type: 'category'
},
series: [{
type: 'column',
keys: ['x', 'y', 'total'],
data: [
[0, 3, 5],
[1, 1, 4],
[2, 3, 3],
[3, 0, 4]
],
dataLabels: {
enabled: true,
formatter: function() {
return this.y + "<br/>(" + Math.round(((this.y / this.point.total) * 100) * 100) / 100 + " %)"
}
}
}]
});
});
我正在使用键为我的积分添加新参数。您可以在此处找到有关此参数的信息:http://api.highcharts.com/highcharts#plotOptions.series.keys
在这里您可以找到一个如何工作的示例: http://jsfiddle.net/m28ob7r7/
此致