javascript - 图表 js 填充不适用于数据标签
问题描述
我尝试在我的图表上方添加填充,但它不起作用。我去了图表的 options.layout.padding 部分。数据标签只是放在栏的顶部,看起来非常糟糕。 因此,无论是在图表上方添加填充的方法,还是将标签固定在条形顶部的某种方法都会有所帮助。我正在使用 Chart js 数据标签插件。
Javascript代码:
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12">
<canvas id="myChart" class="bar-chart"></canvas>
<script>
Chart.register(ChartDataLabels); /* Register chart for data label plugin */
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Lithium Battery', 'Other Mfg', 'Delivery', 'Tailpipe', 'Fuel Cycle', 'Disposal', 'Total'],
value_labels: [ /* labels above the chart */
{{data['icev_lit_bat']}},
... (Ommited for space)
],
datasets: [{
label: 'ICEV CAR (MTCO2e/Year)',
data: [ /* errors are normal, fixes when server runs the code*/
[0, {{data['y1_icev']}}],
[{{data['y1_icev']}}, ... ommited for space
],
backgroundColor: [
'rgba(0,0,0,0.3)'
],
borderColor: [
'rgba(0,0,0,1)'
],
borderWidth: 1,
borderSkipped: false
}]
},
options: { /* Chart settings */
scales: {
y:{
ticks:{
font:{
size: 20
},
stepSize:0.5
},
max: 7,
min: 0,
stepSize: 1
},
x:{
ticks:{
font:{
size: 18
},
},
}
},
layout: {
padding: {
left: 0,
right: 0,
top: 30,
bottom: 0
}
},
responsive: false,
maintainAspectRatio: false,
plugins: {
legend: {
labels: {
font: {
size: 20
}
}
},
datalabels: {
color: '#000',
anchor: 'end',
formatter: function(value, context) { /* sets custom labels */
return context.chart.data.value_labels[context.dataIndex];
}
}
},
y: {
beginAtZero: true
}
}
});
</script>
</div>
解决方案
我想到了。您需要使用 align: 'top'
plugins: {
legend: {
labels: {
font: {
size: 20
}
}
},
datalabels: {
color: '#000',
anchor: 'end',
align: 'top',
formatter: function(value, context) { /* sets custom labels */
return context.chart.data.value_labels[context.dataIndex];
}
}
},
推荐阅读
- javascript - 如何使用 SAP Leonardo 的 API 翻译?
- c++ - 您应该在模板代码中完全避免使用 const 吗?
- kubernetes - 如何将文件从一个命名空间中的 pod 复制到另一个命名空间中的 pod
- javascript - 需要对一些基本设置进行一些说明
- c - 获取进程返回 -1073741819 (0xC0000005) 错误而不是回答
- ios - 我无法在我的 iOS 设备上运行我的应用程序,即使它们已更新
- vue.js - 如何使用 vue-paypal-checkout 生成项目列表?
- mysql - 使用 mysql 和许多外键加入多个表
- php - Laravel 如何与同一张表建立 2 个关系?
- javascript - AH01215:格式错误的多部分 POST:数据被截断