angularjs - Se Chartjs 水平
问题描述
我想使用Chartjs库创建一个像这张照片一样的水平条形图
所以我按照说明操作,我有类似的东西:
TS:
createAreaChart() {
this.barChart1 = document.getElementById('barChart1');
this.ctx1 = this.barChart1.getContext('2d');
let i = 0;
this.data1.forEach(div => {
if(i==0){
this.backgroundColors.push('#A60A2D');
} if(i==1) {
this.backgroundColors.push('#00A2C3');
} if(i==2) {
this.backgroundColors.push('#434F55');
i = -1;
}
i++;
});
this.chart1 = new Chart(this.ctx1, {
type: 'bar',
data: {
labels: this.data1.map(r => r.icon),
datasets: [{
data: this.data1.map(r => r.total),
label: 'Annual Cost',
backgroundColor: this.backgroundColors,
borderColor: this.backgroundColors,
borderWidth: 1
}]
},
options: {
legend: {
display: false
},
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var value = data.datasets[0].data[tooltipItem.index];
if (parseInt(value) >= 1000) {
return '$' + value.toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
return '$' + value.toFixed(2).toString();
}
}
}
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
precision: 2,
userCallback : function(value, index, values) {
if(parseInt(value) >= 1000){
return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
} else {
return '$' + value;
}
}
}
}]
}
}
});
this.chart1.height = 225;
}
HTML
<div class="card chart-card">
<div class="card-header">
<div class="card-title">Test</div>
</div>
<div class="card-body">
<div class="chart">
<canvas id="barChart1" height="220px"></canvas>
</div>
</div>
</div>
但由于某种原因,我得到一个像这样的垂直条:
如何将其更改为水平方向,当前 Y 轴位于 X 轴,每个条形上方使用当前 X 轴,就像第一张照片一样?问候
更新
正如下面的评论我目前使用Chartjs V 2.9.4,现在它可以工作了,图表是水平方向的
现在,我需要在每个条形上方放置 Y 轴文本,这可能吗?
解决方案
看来你还在用Chart.js version 2
。当前最新版本是3.5.1
.
换成type: 'bar'
它type: 'horizontalBar'
应该可以工作。
new Chart(this.ctx1, {
type: 'horizontalBar',
...
有关详细信息,请参阅文档中的水平条形图
Chart.js v2.9.4
。
推荐阅读
- ejs - 如何在我的 profile.ejs 文件中添加一个链接来更改页脚上方的下部?
- php - ERR_INVALID_RESPONSE 从控制器 laravel 生成 csv 文件
- ios - IOS - 如何加载视图只锁定主屏幕而不包括操作栏?
- php - 同时运行的投票系统未全部保存
- apache - 带有通配符子域的反向代理
- arrays - Powershell:if语句,在数组中获取null
- javascript - 一键点击“重新加载多页”
- flutter - Flutter:当我横向播放视频时,App Bar 显示如何使用 Flutter_Youtube_player 避免这种情况
- r - 如何使用 mutate 根据“如果,那么”条件定义新变量?
- node.js - 我在让我的 Nodejs docker 应用程序在 heroku 上运行时遇到问题