Reputation: 20545
I have the following bar chart:
The above chart is generated with the following code:
var myChart = new Chart(ctx, {
type: 'horizontalBar',
data: {
labels: labels,
datasets: [{
label: '# of Votes',
data: data,
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
]
}]
},
options: {
responsive: true,
scales: {
yAxes: [{
borderWidth: 40,
ticks: {
beginAtZero:true
}
}]
}
}
});
As you can see, the bar width is fairly small.
My question is, how can I increase the width of each bar?
Upvotes: 6
Views: 16576
Reputation: 15640
For most versions, this would solve it
import {Chart} from "chart.js"
Chart.defaults.datasets.bar.barThickness = 73;
//also try barPercentage, maxBarThickness
Upvotes: 0
Reputation: 1354
Just add height
tag in canvas
element. This solved for me.
<canvas id="Chart" height="50">
Upvotes: 0
Reputation: 31
Simply increase the canvas height. For Example;
<canvas id="horizontalbar" height="1000px"></canvas>
Upvotes: 2
Reputation: 1025
While this is not an official fix, it worked for me. I took advice from this link, https://github.com/chartjs/Chart.js/issues/2787
I store all my values within multiple arrays, so count number of objects and multiply by a specific number and set height of your chart wrapper ( div around the chart ).
<div class="chart-wrapper horizontalBar" style="position: relative; height: 50vh;">
<canvas id="chart-location"></canvas>
</div>
Then after the chart is drawn, set the height (location_labels is an array housing all my labels)
$( ".horizontalBar" ).height(location_labels.length * 30);
Upvotes: 2
Reputation: 1247
You have the barThickness
option as mentionned in the docs here -> http://www.chartjs.org/docs/#bar-chart-chart-options
Upvotes: 1