Chart.js 堆叠数据集时显示条形图的最大值(chartjs)
我有以下代码:Chart.js 堆叠数据集时显示条形图的最大值(chartjs),chart.js,Chart.js,我有以下代码: animation: { duration: 500, onComplete: function() { var ctx = this.chart.ctx; var chart = this; ctx.textAlign = "center";
animation: {
duration: 500,
onComplete: function() {
var ctx = this.chart.ctx;
var chart = this;
ctx.textAlign = "center";
ctx.textBaseline = "middle";
var datasets = this.config.data.datasets;
ctx.font = "15px QuickSand";
datasets.forEach(function (dataset, i) {
switch ( chart.getDatasetMeta(i).type ) {
case "bar":
ctx.fillStyle = "#303030";
chart.getDatasetMeta(i).data.forEach(function (p, j)
{
ctx.fillText(datasets[i].data[j], p._model.x, p._model.y - 10);
});
break;
}
});
}
}
这些数据集:
datasets: [
{
backgroundColor: '#f87979',
data: [6500, 5500]},
{
backgroundColor: '#f8f8ee',
data: [4800, 5600]
}
]
使用将数据集设置为堆叠
scales: {
xAxes: [{
barThickness: 25,
stacked: true,
ticks: {
beginAtZero: true,
padding: 0,
fontSize: 13
}
}],
yAxes: [{
stacked: true,
display: false
}]
},
上述代码的作用是将值放置在条形图上。我的问题是,我想在每个条的上方显示每个数据集的最高值。
并不是每个点的所有值
你们能帮我吗?我已经试着这样做了一天了
要清除,请执行以下操作:
我想要这个:
查看此JSFIDLE:
基本上,我计算了最大值,然后在堆叠的钢筋上绘制:
onComplete: function() {
var ctx = this.chart.ctx;
var chart = this;
ctx.textAlign = "center";
ctx.textBaseline = "middle";
var datasets = this.config.data.datasets;
ctx.font = "15px QuickSand";
ctx.fillStyle = "#303030";
datasets.forEach(function (dataset, i) {
var maxValue = 0;
chart.getDatasetMeta(i).data.forEach(function (p, j) {
if(maxValue < datasets[j].data[i]) {
maxValue = datasets[j].data[i];
}
});
ctx.fillText(maxValue, datasets[i]._meta[0].data[i]._view.x, 20);
});
}
onComplete:function(){
var ctx=this.chart.ctx;
var图表=此;
ctx.textAlign=“中心”;
ctx.textb基线=“中间”;
var datasets=this.config.data.datasets;
ctx.font=“15px流沙”;
ctx.fillStyle=“#303030”;
forEach(函数(dataset,i){
var maxValue=0;
chart.getDatasetMeta(i).data.forEach(函数(p,j){
if(maxValue
非常感谢您!第二,虽然这不是我想要的。因为它是所有数据集的总值。。我希望它设置每个数据集untop的总值。不是所有数据集的总价值。我不太确定你的意思,你能更新上面的两张图片吗,用第一张图片显示你想要什么。对于第二幅图像,使用不同的图形是令人困惑的。那我就可以帮你了!