javascript - ChartJS:具有多个数据集的水平条不显示条
问题描述
我有单杠比较房间和客人的目标与实现。Rooms 有 3 个数据值(Available、Budget、Actual),Guests 只有 2 个(Budget、Actual)。
下面是生成图表的代码:
data = [{
label: 'Available',
backgroundColor: '#3366ff',
data: [5580]
}, {
label: 'Budget',
backgroundColor: '#009999',
data: [5000, 6500]
}, {
label: 'Actual',
backgroundColor: '#92d400',
data: [5200, 7245]
}];
var myChart = new Chart(ctx, {
type: 'horizontalBar',
data: {
labels: ["Rooms", "Guests"],
datasets: data
}
}
上面代码的问题是,房间预算栏没有显示出来。
它仅在我添加[5580,0]
到可用客人数据值时显示;但是,对于客房之类的客人,没有此类数据。
这是 JSFiddle ( https://jsfiddle.net/kingBethal/vtf17k84/8/ )。
解决方案
5000
是数据集中的最小值,并且 Chart.js 正在创建从 5000 开始的规模:
将beginAtZero
属性设置为true
,您将看到预期的栏:
let data = [{
label: 'Available',
backgroundColor: '#3366ff',
data: [5580]
}, {
label: 'Budget',
backgroundColor: '#009999',
data: [5000, 6500]
}, {
label: 'Actual',
backgroundColor: '#92d400',
data: [5200, 7245]
}];
let myChart = new Chart(document.getElementById('chart'), {
type: 'horizontalBar',
data: {
labels: ["Rooms", "Guests"],
datasets: data
},
options: {
scales: {
xAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<canvas id="chart"></canvas>
推荐阅读
- javascript - WebGL - INVALID_OPERATION:texImage2D:ArrayBufferView 不够大,无法请求
- jekyll - 从输出中排除 Jekyll 帖子(不输出单个 HTML 文件)
- android - staggeredGridLayoutManager 仅在列之间的边缘没有空间
- excel - 从VBA中的文本文件中提取信息
- android - android中android.arch.lifecycle的iOS equivalnet?
- java - javax.mail.MessagingException:无法连接到 SMTP 主机:smtp.gmail.com,端口:587 无法解决此问题
- windows - 在 git bash 中使用 python json.tool 时出现“stdin is not a tty”错误
- c - 错误:使用类型“sfVector2f”初始化类型“unsigned int”时类型不兼容
- java - 如何查看向下转换在 Java 中是否合法?
- html - html 元标记未在框架集的父级中继承