Highcharts:如何从stackLabel格式化程序中在Highcharts条形图中提供自定义堆栈标签?

Highcharts:如何从stackLabel格式化程序中在Highcharts条形图中提供自定义堆栈标签?,highcharts,Highcharts,在过去的两天里,我一直在努力想办法提供一个自定义堆栈标签,而不是使用this.stackTotal选项 我的设想是,每个堆栈的标签基本上不取决于每个系列,而是取决于许多因素。因此,客户端希望在每个堆叠条的末端设置任意值。到目前为止,我所做的是()但是到目前为止,在尝试在每个堆叠条的末端显示自定义标签时失败了 我试图通过提供一个名为QTotal的系列选项来传递我需要在系列中的每个堆栈末尾显示的值,但后来我意识到stackLabel不支持(this.point.series)。所以我试着在每个栏的末

在过去的两天里,我一直在努力想办法提供一个自定义堆栈标签,而不是使用this.stackTotal选项

我的设想是,每个堆栈的标签基本上不取决于每个系列,而是取决于许多因素。因此,客户端希望在每个堆叠条的末端设置任意值。到目前为止,我所做的是()但是到目前为止,在尝试在每个堆叠条的末端显示自定义标签时失败了

我试图通过提供一个名为QTotal的系列选项来传递我需要在系列中的每个堆栈末尾显示的值,但后来我意识到stackLabel不支持(this.point.series)。所以我试着在每个栏的末尾显示至少一个类别名称,但这也完全是徒劳的

我真的很感激在试图解决这个问题时能得到的任何帮助

再一次,我想完成的是为每个堆栈显示一个自定义标签,而不是(this.stackTotal)选项

我的逻辑是,也许我可以从stackLabel格式化程序启动所有类别的循环,这些类别都存在,并且根据类别显示所需的任意值

非常感谢,, 杰里

我的代码如下: $(函数(){

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];
    }
}