Javascript 如何隐藏溢出的Highcharts树映射数据标签?
我想配置Highcharts树映射,以便如果datalabel足够长,足以溢出点边界(而不仅仅是图表边界),那么它将被隐藏 这里可以看到问题的一个例子: 我希望最终标签(“Gggggg”)不显示,因为它超出了其点的边界。我尝试了Javascript 如何隐藏溢出的Highcharts树映射数据标签?,javascript,highcharts,treemap,Javascript,Highcharts,Treemap,我想配置Highcharts树映射,以便如果datalabel足够长,足以溢出点边界(而不仅仅是图表边界),那么它将被隐藏 这里可以看到问题的一个例子: 我希望最终标签(“Gggggg”)不显示,因为它超出了其点的边界。我尝试了数据标签选项,包括填充、溢出和裁剪,但都没有效果。您可以将该选项用于数据标签 请点击此处: 或者,更具活力的方法: 您可以使用格式化程序选项完全控制标签 要明确地知道标签是否溢出了内容有点困难,但是您可以得到内容的宽度,并计算文本的像素数,然后决定是否显示标签。你甚至可以
数据标签
选项,包括填充
、溢出
和裁剪
,但都没有效果。您可以将该选项用于数据标签
请点击此处:
或者,更具活力的方法:
您可以使用格式化程序
选项完全控制标签
要明确地知道标签是否溢出了内容有点困难,但是您可以得到内容的宽度,并计算文本的像素数,然后决定是否显示标签。你甚至可以只显示标签的一部分,如果它不能填满整个东西
下面是一个例子:
在本例中,我仅显示值占整个地图5%以上的点的标签
希望有帮助,
关于您可以使用数据标签选项
请点击此处:
或者,更具活力的方法:
您可以使用格式化程序
选项完全控制标签
要明确地知道标签是否溢出了内容有点困难,但是您可以得到内容的宽度,并计算文本的像素数,然后决定是否显示标签。你甚至可以只显示标签的一部分,如果它不能填满整个东西
下面是一个例子:
在本例中,我仅显示值占整个地图5%以上的点的标签
希望有帮助,
这不能仅仅通过配置预定义的图表选项来实现
这里有一个自定义代码可以完成此任务:
chart: {
events: {
load: function() {
var points = this.series[0].points;
points.forEach(function(point) {
console.log(point);
if(point.shapeArgs.width < point.dataLabel.width) {
point.dataLabel.hide();
}
});
}
}
},
图表:{
活动:{
加载:函数(){
var points=此.series[0]。点;
点。forEach(函数(点){
控制台日志(点);
if(point.shapeArgs.width
实时演示:仅通过配置预定义的图表选项无法完成此操作
这里有一个自定义代码可以完成此任务:
chart: {
events: {
load: function() {
var points = this.series[0].points;
points.forEach(function(point) {
console.log(point);
if(point.shapeArgs.width < point.dataLabel.width) {
point.dataLabel.hide();
}
});
}
}
},
图表:{
活动:{
加载:函数(){
var points=此.series[0]。点;
点。forEach(函数(点){
控制台日志(点);
if(point.shapeArgs.width
现场演示:谢谢,这正是我想要的。这似乎与Highcharts源代码中的非常相似,其中数据标签的宽度设置为点的宽度(但对我来说似乎没有任何影响)-可能这是预期的行为,是一个bug?它似乎是一个bug。只有当这个词比它的意思更宽时,它才会发生。如果你在中间插入一个空白的话,一切都会很好:当代码<>使用HTML时,会出现另一个问题:-标签没有正确对齐。我报告了这个主题的两个问题:谢谢,订阅!谢谢,这正是我要找的。这似乎与Highcharts源代码中的非常相似,其中数据标签的宽度设置为点的宽度(但对我来说似乎没有任何影响)-可能这是预期的行为,是一个bug?它似乎是一个bug。只有当这个词比它的意思更宽时,它才会发生。如果你在中间插入一个空白的话,一切都会很好:当代码<>使用HTML时,会出现另一个问题:-标签没有正确对齐。我报告了这个主题的两个问题:谢谢,订阅!谢谢,这是一个有趣的方法,但不幸的是并没有解决我的问题,即标签可以是任意长度的-例如,即使是>50%的点也可能有一个太长的标签,不适合点的边界。嗨@BenElliott!昨天我遇到了做这件事的正确方法。在数据标签
上有一个溢出
选项。我编辑了我的答案。请检查:)谢谢,但实际上,overflow:“crop”
似乎只是确保标签不会溢出图表,而不是溢出点。您可以在您的示例中看到这一点。谢谢,这是一个有趣的方法,但不幸的是,这并不能解决我的问题,即标签可能是任意长度的-例如,即使是>50%的点也可能有一个太长的标签,不适合该点的边界。您好@BenElliott!昨天我遇到了做这件事的正确方法。在数据标签
上有一个溢出
选项。我编辑了我的答案。请检查:)谢谢,但实际上,overflow:“crop”
似乎只是确保标签不会溢出图表,而不是溢出点。您可以在示例中看到这一点。