highcharts - 如何在变量饼图中移动右上角的数据标签
问题描述
如何将下面的数据标签足球移动到变量饼图的右上角而不是显示在底部。我尝试了这些选项
alignTo: 'connectors' 或 alignTo: 'toPlotEdges'
但没有什么对我有用。任何帮助将不胜感激
var total = 80;
Highcharts.chart('container', {
chart: {
type: 'variablepie',
height: 370,
marginBottom: 50
},
credits: {
enabled: false
},
title: {
text: 'Football vs cricket',
align: 'center',
y: -5,
verticalAlign: 'bottom',
style: {
fontFamily: 'proxima_nova_bold',
fontSize: '20px',
fontWeight: 'normal',
color: '#8d99ab',
}
},
subtitle: {
text: ' ' + total + '<br/> Total',
useHTML: true,
verticalAlign: 'middle',
y: -20
},
xAxis: {
labels: {
rotation: 0
}
},
plotOptions: {
variablepie: {
size: 220,
dataLabels: {
enabled: true,
connectorColor: '#979797',
useHTML: true,
formatter: function () {
var key;
if(this.key == 'football'){
key = 'as football / Lionel Messi';
}else if(this.key == 'cricket'){
key = 'as cricket / Sachin Tendulkar';
}else{
key = this.key;
}
return '<span class=cls1>' + this.y + '</span>' + '<span class=cls2>' + key + '</span>';
}
},
showInLegend: true,
}
},
tooltip: {
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.y +' %';
}
},
legend: {
enabled: false
},
series: [{
minPointSize: 10,
innerSize: '70%',
zMin: 0,
data: [{name: "football", y: 71, z: 30}, {name: "cricket", y: 2, z: 18}]
}]
});
解决方案
您可以尝试实现此处显示的选项之一:https ://www.highcharts.com/docs/advanced-chart-features/pie-datalabels-alignment
或者使用渲染回调并手动设置这个特定标签的 y 位置。
演示:https ://jsfiddle.net/BlackLabel/2oskhmnd/
events: {
render() {
let chart = this;
chart.series[0].points[0].dataLabel.attr({y: 10});
chart.series[0].points[0].connector.hide();
}
}
不幸的是,此解决方案需要将自定义连接器呈现为移动的 dataLabel。您可以使用上面链接(pie-datalabels-alignment)中显示的一些方法或使用 SVGRenderer 工具来呈现路径:https ://api.highcharts.com/class-reference/Highcharts.SVGRenderer#小路
API:https ://api.highcharts.com/highcharts/chart.events.render
推荐阅读
- redis - Redis模式仅查找数字键
- javascript - Web 应用程序上的 Google 可视化时间线图
- reactjs - react-router-dom,如何跳过后退按钮
- java - 无法使用 RecyclerView 从 firebase 查看单个用户数据
- automation - 自动化:应用程序触发器执行另一个应用程序
- go - 使用 HTTP 200 OK 防止超出上下文期限(等待标头时超出 Client.Timeout)错误
- kubernetes - Istio ServiceEntry 和 VirtualService 重定向到主机
- python - 如何用 Python 编写简单的 Pross Pay?
- python - 如何在凸多边形的周长上生成随机/均匀点?
- python - 在 python 中绘图时如何自定义轴?