Highcharts-如果条形图上没有足够的空间,则更改文本的颜色
我目前正在使用条形图显示我的数据。在这个div中,我的条形图的宽度为50%。如果条形图的百分比对于宽度来说太大,则条形图本身会显示显示百分比(如10%)的条形图旁边的文本。这很好,但使用和条形图相同的颜色css。在这种情况下,很难读取百分比 我希望百分比使用与条形图相同的颜色,但只有在这种情况下,才能将文本更改为白色吗 以下是一个照片示例: 下面是我使用Highcharts-如果条形图上没有足够的空间,则更改文本的颜色,highcharts,Highcharts,我目前正在使用条形图显示我的数据。在这个div中,我的条形图的宽度为50%。如果条形图的百分比对于宽度来说太大,则条形图本身会显示显示百分比(如10%)的条形图旁边的文本。这很好,但使用和条形图相同的颜色css。在这种情况下,很难读取百分比 我希望百分比使用与条形图相同的颜色,但只有在这种情况下,才能将文本更改为白色吗 以下是一个照片示例: 下面是我使用plotOptions plotOptions: { bar: { dataLabels: { ena
plotOptions
plotOptions: {
bar: {
dataLabels: {
enabled: true,
formatter: function() {
return ` <span style="color:${this.color};">${this.y} %</span>`;
}
}
}
},
plotOptions:{
酒吧:{
数据标签:{
启用:对,
格式化程序:函数(){
返回`${this.y}%`;
}
}
}
},
这里有一个链接,指向重新创建问题的JSFIDLE:我认为更好的办法是在初始化后更改dataLabels的颜色,这将为我们提供有关其位置的信息 演示:
API:@Sebestian感谢您的回复,它确实达到了我的目的,但它确实删除了没有职位问题的百分比的文本颜色。有没有办法做到这两个方面?如果文本不在条内,请将颜色设置为条的原始颜色,如果文本在条内,请将颜色设置为白色。目前,在您提供的JSFIDLE链接中,所有其他文本颜色都是black@stepheniok将
load
回调更改为render
回调应该会更改它。查看演示:
events: {
load() {
let chart = this;
chart.series[0].points.forEach(p => {
if (p.dataLabel.alignOptions.align !== "right") {
p.dataLabel.css({
color: p.color
})
}
})
}
}