javascript - 减少水平条形图中条形之间的间距(chart.js)
问题描述
我有以下水平条形图
<template>
<div>
<canvas id="myChart" width="100" height="100"></canvas>
</div>
</template>
<script>
import Chart from 'chart.js';
export default {
data() {
return {
ctx: null,
chart: null,
}
},
mounted() {
this.ctx = document.getElementById('myChart');
this.chart = new Chart(this.ctx, {
type: 'horizontalBar',
data: {
labels: ['1', '2', '3', '4', '5'],
datasets: [{
categoryPercentage: 0.4,
label: 'Stars',
data: [15, 28, 34, 48, 100],
backgroundColor: [
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
],
}]
},
options: {
scales: {
xAxes: [{
stacked: true
}],
yAxes: [{
stacked: true,
categoryPercentage: 0.4
}]
}
}
});
}
}
</script>
我想减少一个酒吧和另一个酒吧之间的间距(不是消除它,只是减少它),但我不知道如何做到这一点,如果我使用categoryPercentage
道具它的作用大致相同barPercentage
,只是减少了条本身,但不是每个条之间的距离。
如果可能的话,我也会把图表放在空白画布上
解决方案
条形宽度受选项barPercentage
和categoryPercentage
影响,这两个选项都需要在数据集上定义。
要了解 and 之间的关系barPercentage
,categoryPercentage
请参见此处。
请在下面查看您修改后的可运行代码:
new Chart('myChart', {
type: 'horizontalBar',
data: {
labels: ['1', '2', '3', '4', '5'],
datasets: [{
barPercentage: 0.9,
categoryPercentage: 1,
label: 'Stars',
data: [15, 28, 34, 48, 100],
backgroundColor: [
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)',
'rgba(178, 140, 129, 0.2)'
],
}]
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="myChart"></canvas>
如果您只是想看到现有的条形图彼此靠近,则需要更改图表的高度。这可以直接在
canvas
throughheight
属性上完成。或者,您也可以将其包含canvas
在 adiv
中,其尺寸由 some 定义CSS
。
推荐阅读
- android - 是否有对内置设备警报系统的 android/ios 的编程访问
- jenkins - groovy.lang.MissingPropertyException:没有这样的属性:类的管道:groovy.lang.Binding
- python - Python字典如何在for循环中调用第一个元素
- python - 应用 np.gradient 函数的不一致
- python - 使用 selenium Python 对多个搜索词进行迭代搜索
- javascript - 如何将多个参数传递给 vuex getter?
- r - 了解 ifelse 的工作原理
- php - 如何在 PHP 中通过 cURL 获取此节点 ID?
- python - 未正确调用 DataFrame 构造函数!使用 JSON
- swift - 如何在不通过选择器 Swift 的情况下将参数传递给方法?