Plugins 条形图的ChartList插件数据点

Plugins 条形图的ChartList插件数据点,plugins,charts,chartist.js,Plugins,Charts,Chartist.js,我正在尝试让data point用于条形图,我找到了用于折线图的插件,但无法用于条形图,有人能帮忙吗?数据点应显示在条形图上方 新建ChartList.Bar(“#chart1”{ 标签:['M','T','W','T','F'], 系列:[8,19,24,37,12] }, { 分销商:对 }); 新图表列表线(“#图表2”{ 标签:['M','T','W','T','F'], 系列:[ [12, 9, 7, 8, 5] ] }, { 插件:[ ChartList.plugins.ctPoi

我正在尝试让data point用于条形图,我找到了用于折线图的插件,但无法用于条形图,有人能帮忙吗?数据点应显示在条形图上方


新建ChartList.Bar(“#chart1”{
标签:['M','T','W','T','F'],
系列:[8,19,24,37,12]
}, {
分销商:对
});
新图表列表线(“#图表2”{
标签:['M','T','W','T','F'],
系列:[
[12, 9, 7, 8, 5]
]
}, {
插件:[
ChartList.plugins.ctPointLabels({
textAnchor:'中间'
})
]
});
(功能(窗口、文档、图表){
"严格使用",;
var defaultOptions={
labelClass:“ct标签”,
标签偏移:{
x:0,,
y:-10
},
textAnchor:'中间',
labelInterpolationFnc:Chartist.noop
};
Chartist.plugins=Chartist.plugins | |{};
charlist.plugins.ctPointLabels=函数(选项){
options=ChartList.extend({},defaultOptions,options);
返回函数ctPointLabels(图表){
if(图表列表线的图表实例){
图表上的“绘制”功能(数据){
如果(data.type==='point'){
data.group.elem('text'{
x:data.x+options.labelOffset.x,
y:data.y+options.labelOffset.y,
样式:“文本锚定:”+options.textAnchor
}文本(options.labelInterpolationFnc(data.value.x==undefined?data.value.y:data.value.x+','+data.value.y));
}
});
}
if(ChartList.Bar的图表实例){
图表上的“绘制”功能(数据){
如果(data.type==='bar'){
data.group.elem('text'{
x:data.x+options.labelOffset.x,
y:data.y+options.labelOffset.y,
样式:“文本锚定:”+options.textAnchor
}文本(options.labelInterpolationFnc(data.value.x==undefined?data.value.y:data.value.x+','+data.value.y));
}
});
}
};
};
}(窗口、文档、图表);

将插件代码更改为:

if(chart instanceof Chartist.Bar) {
    chart.on('draw', function(data) {
      if(data.type === 'bar') {
        data.group.elem('text', {
          x: (data.x === undefined ? data.x1 : data.x ) + options.labelOffset.x,
          y: (data.y === undefined ? data.y2 : data.y) + options.labelOffset.y,
          style: 'text-anchor: ' + options.textAnchor
        }, options.labelClass).text(options.labelInterpolationFnc(data.value.x === undefined ? data.value.y : data.value.x + ', ' + data.value.y));
      }
    });
  }

有一个插件可以为条形图和柱状图添加标签

请看这里:

然后,我借用了以下github注释中的标签位置计算:

简而言之,我在ctBarLabels插件选项中有以下内容:

            position: {
            x: function(data) {
                return data.x1 + (data.element.width() * .5);
            },
            y: function(data) {
                return data.y1 + (data.element.height() * -1) - 10;
            }
我现在可以用样式表来设置标签的样式。我还可以使用函数格式化标签(例如,货币与普通值)

            position: {
            x: function(data) {
                return data.x1 + (data.element.width() * .5);
            },
            y: function(data) {
                return data.y1 + (data.element.height() * -1) - 10;
            }