Javascript Highcharts:向图例添加额外文本

Javascript Highcharts:向图例添加额外文本,javascript,highcharts,legend,Javascript,Highcharts,Legend,大家好,我有一个饼图,图例格式如下: { enabled: true, labelFormatter: function() { return this.name + ' (Gesamt: ' + this.y + ' - ' + this.percentage.toFixed(1) + '%)' ; }, borderWidth: 1 }; 在某些特定情况下,我需要在这个图例框中添加一个我定义为text='extra'的额外文本。其余的我仍

大家好,我有一个饼图,图例格式如下:

{
    enabled: true,
    labelFormatter: function() {
        return  this.name + ' (Gesamt: ' + this.y + ' - '  + this.percentage.toFixed(1) + '%)' ;
    },
    borderWidth: 1
};
在某些特定情况下,我需要在这个图例框中添加一个我定义为text='extra'的额外文本。其余的我仍然把它们放在盒子里。我该怎么做


我的JSFIDLE代码:

您可以添加一些if条件,并按照需要显示文本

e、 g

完整示例:

$(函数(){
$(文档).ready(函数(){
var text='Extra';
//绘制图表
$(“#容器”)。高图({
图表:{
plotBackgroundColor:null,
plotBorderWidth:null,
影子:错,
键入:“馅饼”
},
标题:{
正文:“浏览器市场份额2015年1月至2015年5月”
},
工具提示:{
pointFormat:“{series.name}:{point.percentage:.1f}%”
},
打印选项:{
馅饼:{
allowPointSelect:true,
光标:“指针”,
数据标签:{
已启用:false
},
showInLegend:对
}
},
图例:{
启用:对,
labelFormatter:函数(){
var p=this.name+'(Gesamt:'+this.y+'-'+this.percentage.toFixed(1)+'%);
如果(this.name=='Chrome'){//测试名称
返回p+‘其他Chrome文本’;
}否则{
返回p;
}
},
边框宽度:1
},
系列:[{
名称:'品牌',
colorByPoint:对,
数据:[{
名称:“Microsoft Internet Explorer”,
y:56.33
}, {
名称:“Chrome”,
y:24.03,
切碎:是的,
所选:真
}, {
名称:“Firefox”,
y:10.38
}, {
名称:“Safari”,
y:4.77
}, {
名字:'歌剧',
y:0.91
}, {
名称:“专有或不可检测”,
y:0.2
}]
}]
});
});
});

您可以添加一些if条件,并根据需要显示文本

e、 g

完整示例:

$(函数(){
$(文档).ready(函数(){
var text='Extra';
//绘制图表
$(“#容器”)。高图({
图表:{
plotBackgroundColor:null,
plotBorderWidth:null,
影子:错,
键入:“馅饼”
},
标题:{
正文:“浏览器市场份额2015年1月至2015年5月”
},
工具提示:{
pointFormat:“{series.name}:{point.percentage:.1f}%”
},
打印选项:{
馅饼:{
allowPointSelect:true,
光标:“指针”,
数据标签:{
已启用:false
},
showInLegend:对
}
},
图例:{
启用:对,
labelFormatter:函数(){
var p=this.name+'(Gesamt:'+this.y+'-'+this.percentage.toFixed(1)+'%);
如果(this.name=='Chrome'){//测试名称
返回p+‘其他Chrome文本’;
}否则{
返回p;
}
},
边框宽度:1
},
系列:[{
名称:'品牌',
colorByPoint:对,
数据:[{
名称:“Microsoft Internet Explorer”,
y:56.33
}, {
名称:“Chrome”,
y:24.03,
切碎:是的,
所选:真
}, {
名称:“Firefox”,
y:10.38
}, {
名称:“Safari”,
y:4.77
}, {
名字:'歌剧',
y:0.91
}, {
名称:“专有或不可检测”,
y:0.2
}]
}]
});
});
});

更新2(最新版本已启用datalabel)

您就快到了,使用此>>在序列数据中添加一个类似“extra”的字段

已更新

           labelFormatter: function() {
                  if(this.extra !=null){
                    return  this.name + ' ('+this.extra+': ' + this.y + ' - '                                                   + this.percentage.toFixed(1) + '%)' ;
                }else{
                   return  this.name + '(' + this.y + ' - '                                                     + this.percentage.toFixed(1) + '%)' ;
                }}

放置一个if条件以除去未定义的

根据下面的评论

创建一个名为“Extra”的空序列,如下图所示

 labelFormatter: function() { if(this.y ==null) return "Extra Legend"; jsfiddle.net/wjnnt28p/4
问题是,在格式化图例时,如果y没有任何值,它将显示未定义的文本。(空系列案例)用于该写入条件逻辑


第二种解决方案是返回“额外标签”,但单击此图例将不会有数据,因此legendclick可能会被覆盖。

更新2(最新版本启用了datalabel)

您就快到了,使用此>>在序列数据中添加一个类似“extra”的字段

已更新

           labelFormatter: function() {
                  if(this.extra !=null){
                    return  this.name + ' ('+this.extra+': ' + this.y + ' - '                                                   + this.percentage.toFixed(1) + '%)' ;
                }else{
                   return  this.name + '(' + this.y + ' - '                                                     + this.percentage.toFixed(1) + '%)' ;
                }}

放置一个if条件以除去未定义的

根据下面的评论

创建一个名为“Extra”的空序列,如下图所示

 labelFormatter: function() { if(this.y ==null) return "Extra Legend"; jsfiddle.net/wjnnt28p/4
问题是,在格式化图例时,如果y没有任何值,它将显示未定义的文本。(空系列案例)用于该写入条件逻辑


第二种解决方案是返回“额外标签”,但单击此图例将不会有数据,因此legendclick可能会被覆盖。

什么是“特定情况”?这发生在我的实际代码中,在JSFIDLE中,我只是举了一个例子什么是“特定情况”?这发生在我的实际代码中,在JSFIDLE中,我只是举了一个例子否,我的意思是我仍然保留所有当前图例,然后再添加一个附加文本否,我的意思是我仍然保留所有当前图例,然后再添加一个附加文本text@Son请核对我答案中的错误。您的系列将是动态的/来自作为响应的服务器调用。所以最好是在JSON创建时在数据中添加extraText,并将其提供给highcharts。在图表中,它将使用我在answer/fiddle中发布的代码以所需的格式显示。为“额外”添加静态文本在实际场景中不起作用,因此请使用FIDLE中的代码。问题是,我想显示的是额外文本,它将显示为新的图例,除了当前的图例,如Microsoft Internet Explore、Chrome、Firefox等,。。。Tha