Highcharts:如何从stackLabel格式化程序中在Highcharts条形图中提供自定义堆栈标签?
在过去的两天里,我一直在努力想办法提供一个自定义堆栈标签,而不是使用this.stackTotal选项 我的设想是,每个堆栈的标签基本上不取决于每个系列,而是取决于许多因素。因此,客户端希望在每个堆叠条的末端设置任意值。到目前为止,我所做的是()但是到目前为止,在尝试在每个堆叠条的末端显示自定义标签时失败了 我试图通过提供一个名为QTotal的系列选项来传递我需要在系列中的每个堆栈末尾显示的值,但后来我意识到stackLabel不支持(this.point.series)。所以我试着在每个栏的末尾显示至少一个类别名称,但这也完全是徒劳的 我真的很感激在试图解决这个问题时能得到的任何帮助 再一次,我想完成的是为每个堆栈显示一个自定义标签,而不是(this.stackTotal)选项 我的逻辑是,也许我可以从stackLabel格式化程序启动所有类别的循环,这些类别都存在,并且根据类别显示所需的任意值 非常感谢,, 杰里 我的代码如下: $(函数(){Highcharts:如何从stackLabel格式化程序中在Highcharts条形图中提供自定义堆栈标签?,highcharts,Highcharts,在过去的两天里,我一直在努力想办法提供一个自定义堆栈标签,而不是使用this.stackTotal选项 我的设想是,每个堆栈的标签基本上不取决于每个系列,而是取决于许多因素。因此,客户端希望在每个堆叠条的末端设置任意值。到目前为止,我所做的是()但是到目前为止,在尝试在每个堆叠条的末端显示自定义标签时失败了 我试图通过提供一个名为QTotal的系列选项来传递我需要在系列中的每个堆栈末尾显示的值,但后来我意识到stackLabel不支持(this.point.series)。所以我试着在每个栏的末
var categoriesVal={
“期限1”:“期限1”,
“第二学期”:“第二学期”,
‘第三学期’:‘第三学期’,
“第四学期”:“第四学期”,
“第五学期”:“第五学期”
};
$(“#容器”)。高图({
图表:{
defaultSeriesType:'bar',
风格:{
fontFamily:“日内瓦、塔荷马、威尔达纳、无衬线”
}
},
标题:{
正文:“严重不良事件”,
风格:{
字体大小:“1.2米”,
fontWeight:“粗体”
}
},
xAxis:{
类别:[‘第一学期’、‘第二学期’、‘第三学期’、‘第四学期’、‘第五学期’],
//线条颜色:“#000”,
线宽:.5,
宽度:.5,
长度:3,
勾选颜色:“#000”,
标题:{
文本:“”,
风格:{
颜色:“#000”,
字体大小:'.8em'
}
},
标签:{
风格:{
fontWeight:“粗体”
}
}
},
亚克斯:{
分:0,,
//线条颜色:“#000”,
线宽:.5,
宽度:.5,
长度:3,
勾选颜色:“#000”,
//网格线宽:0,
//gridLineColor:“#eee”,
标题:{
正文:“总计”,
轮换:0,
风格:{
颜色:“#000”,
字体大小:'.8em'
}
},
堆叠标签:{
启用:对,
风格:{
fontWeight:“粗体”
//颜色:(Highcharts.theme&&Highcharts.theme.textColor)| |“灰色”
},
格式化程序:函数(){
//var s=this.series.options.QTotal;
//返回高位图表。数字格式(数学四舍五入(s*100)/100,2)+'%';
返回categoriesVal[this.value]+'Test';
}
}
},
图例:{
对齐:“右”,
x:-70,
垂直排列:“顶部”,
y:20,
浮动:是的,
背景颜色:(Highcharts.theme&&Highcharts.theme.background2)| |“白色”,
边框颜色:“#CCC”,
边框宽度:1,
影子:错
},
工具提示:{
//分享:是的,
十字准星:没错,
//是的,
格式化程序:函数(){
返回“+this.x+”
+
this.series.name+':'+this.y+this.point.dtLabel;/*+'
+
“总计:”+此.point.stackTotal*/;
}
},
打印选项:{
酒吧:{
堆叠:“正常”,
数据标签:{
启用:对,
颜色:(Highcharts.theme&&Highcharts.theme.dataLabelsColor)| |“白色”,
/*格式化程序:函数(){
返回此.point.dtLabel;
},*/
风格:{
textShadow:'0 0 3px黑色,0 0 3px黑色'
}
}
}
},
系列:[
{
姓名:'不严重',
数据:[{y:2,dtLabel:'
受试者:0012001006007'},6,3,3,{y:4,dtLabel:'
受试者:0012001006007'},
颜色:'#000000',
数量总数:0.79
},
{
名称:'严重严重',
数据:[0,0,0,2,5],
颜色:“#FF0000”,
数量总数:0.79
},
{
名称:"严重中度",,
数据:[2,2,3,2,1],
颜色:“#00FF00”,
数量总数:0.79
},
{
名称:“严重轻度”,
数据:[5,3,4,7,2],
颜色:“#0000FF”,
数量总数:0.79
}
]
});
});
堆栈标签此
不包含对其系列的引用,因为它是所有系列的组合;所以我不知道你会怎么想
var categoriesVal = {
'Term 1':'Term 1',
'Term 2':'Term 2',
'Term 3':'Term 3',
'Term 4':'Term 4',
'Term 5':'Term 5'
};
$('#container').highcharts({
chart: {
defaultSeriesType: 'bar',
style: {
fontFamily: 'Geneva, Tahoma, Verdana, sans-serif'
}
},
title: {
text: 'Serious AEs',
style: {
fontSize:'1.2em',
fontWeight:'bold'
}
},
xAxis: {
categories: ['Term 1','Term 2','Term 3','Term 4','Term 5'],
// lineColor:'#000',
lineWidth:.5,
tickWidth:.5,
tickLength:3,
tickColor:'#000',
title: {
text: '',
style: {
color:'#000',
fontSize:'.8em'
}
},
labels: {
style: {
fontWeight:'bold'
}
}
},
yAxis: {
min: 0,
//lineColor:'#000',
lineWidth:.5,
tickWidth:.5,
tickLength:3,
tickColor:'#000',
//gridLineWidth:0,
//gridLineColor:'#eee',
title: {
text: 'Total',
rotation:0,
style: {
color:'#000',
fontSize:'.8em'
}
},
stackLabels: {
enabled: true,
style: {
fontWeight: 'bold'
// color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
},
formatter: function() {
// var s = this.series.options.QTotal;
// return Highcharts.numberFormat(Math.round(s*100)/100,2)+'%';
return categoriesVal[this.value]+' Test';
}
}
},
legend: {
align: 'right',
x: -70,
verticalAlign: 'top',
y: 20,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
borderColor: '#CCC',
borderWidth: 1,
shadow: false
},
tooltip: {
//shared: true,
crossHairs: true,
//useHTML: true,
formatter: function() {
return '<b>'+ this.x +'</b><br/>'+
this.series.name +': '+ this.y + this.point.dtLabel; /*+'<br/>'+
'Total: '+ this.point.stackTotal*/;
}
},
plotOptions: {
bar: {
stacking: 'normal',
dataLabels: {
enabled: true,
color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
/*formatter:function(){
return this.point.dtLabel;
},*/
style: {
textShadow: '0 0 3px black, 0 0 3px black'
}
}
}
},
series: [
{
name: 'Not Serious',
data: [{y:2,dtLabel:'<br />Subject(s):0012001,006007'},6, 3, 3, {y:4,dtLabel:'<br />Subject(s):0012001,006007'}],
color: '#000000',
QTotal:0.79
},
{
name: 'Serious Severe',
data: [0,0,0,2, 5],
color: '#FF0000',
QTotal:0.79
},
{
name: 'Serious Moderate',
data: [2, 2, 3, 2, 1],
color: '#00FF00',
QTotal:0.79
},
{
name: 'Serious Mild',
data: [5, 3, 4, 7, 2],
color: '#0000FF',
QTotal:0.79
}
]
});
});
stackLabels: {
qTotals: ['This','is','a','qTotal','!'],
enabled: true,
style: {
fontWeight: 'bold'
},
formatter: function() {
return this.options.qTotals[this.x];
}
}