highcharts自定义数据标签复制

highcharts自定义数据标签复制,highcharts,Highcharts,有人能告诉我为什么我的图表上的自定义数据标签在某些情况下会显示两次吗?请注意,这与导出服务中的错误无关,但为了以防万一,我将textshadow设置为“none”。这似乎并不一致。提前谢谢 JSFIDLE在这里: #容器{ 高度:400px; 最小宽度:310px; 最大宽度:800px; 保证金:0自动; } $(函数(){ window.chart1=新的Highcharts.Chart({ 图表:{ renderTo:'容器', 类型:“columnrange”, 倒过来:是的 },

有人能告诉我为什么我的图表上的自定义数据标签在某些情况下会显示两次吗?请注意,这与导出服务中的错误无关,但为了以防万一,我将textshadow设置为“none”。这似乎并不一致。提前谢谢

JSFIDLE在这里:


#容器{
高度:400px;
最小宽度:310px;
最大宽度:800px;
保证金:0自动;
}
$(函数(){
window.chart1=新的Highcharts.Chart({
图表:{
renderTo:'容器',
类型:“columnrange”,
倒过来:是的
},
标题:{
文本:“拖拉机利用率图表”
},
xAxis:{
标题:{
文字:“车辆”
},
类别:['970106','970108','970110','970111']
},
亚克斯:{
键入:“日期时间”,
网格线宽度:1,
gridLineColor:“#8888888”,
最低:14638932000,
最大值:1464498000000,
滴答声间隔:6*3600*1000,
标题:{
文本:“日期和时间”
}
},
图例:{
启用:对,
labelFormatter:function(){
返回“ABC”;
}
},
打印选项:{
列范围:{
分组:false
}
},
系列:[{
数据:[{
颜色:“青色”,
数据标签:{
启用:对,
对齐:“左”,
风格:{
textShadow:“无”
},
格式化程序:函数(){
返回“20614523”;
}
},
x:0,,
低:146407000000,
高位:14641140000
}, {
颜色:“青色”,
数据标签:{
启用:对,
对齐:“左”,
风格:{
textShadow:“无”
},
格式化程序:函数(){
返回“20614531”;
}
},
x:1,
低:146400600000,
高位:1464120660000
}, {
颜色:“青色”,
数据标签:{
启用:对,
对齐:“左”,
风格:{
textShadow:“无”
},
格式化程序:函数(){
返回“20614601”;
}
},
x:2,
低:146408000000,
高:1464078538000
}, {
颜色:“青色”,
数据标签:{
启用:对,
对齐:“左”,
风格:{
textShadow:“无”
},
格式化程序:函数(){
返回“20614504”;
}
},
x:3,
低:146396700万,
高位:1464011852000
}],
}, {
数据:[{
颜色:“青色”,
数据标签:{
启用:对,
对齐:“左”,
风格:{
textShadow:“无”
},
格式化程序:函数(){
返回“20614502”;
}
},
x:0,,
低:1463947200,
高等教育:1463994392000
}]
}]
});
}); 

如我在评论中所述,范围系列显示两个数据标签-一个用于低,一个用于高

在您的情况下,由于一些数据点靠得很近,因此图表会隐藏其中一个数据点以避免重叠。因此,只有较长的范围显示两个数据标签

参考:

要仅显示一个数据点,可以在formatter函数中进行检查,查看
point.y
值是否等于
point.high

例如:

formatter: function() {
  if (this.y == this.point.high) {
    return this.point.val;
  }
}
小提琴:


Range series显示高点和低点的数据标签。它只对某些点显示的原因是allowOverlap()选项在默认情况下设置为false,并且您的一些点会重叠,因此它们是隐藏的。您应该能够在格式化程序中进行一些检查,只返回高点上的值。非常感谢您提供了我需要的准确答案,而且非常快。
formatter: function() {
  if (this.y == this.point.high) {
    return this.point.val;
  }
}