我正在使用Chart.js以及以下html:
<canvas id="fisheye" width="100" height="100" style="border:1px solid;"></canvas>
这是Javascript部分:
getChart: function () {
var ctx = document.getElementById("fisheye");
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["json1", "json2", "json3", "json4"],
datasets: [{
label: '1.3.0 Version',
type: 'bar',
data: [52.4060092977, 90.0854057722, 196.576968515, 77.6216726434],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(255, 99, 132, 0.2)',
'rgba(255, 99, 132, 0.2)',
'rgba(255, 99, 132, 0.2)'
// 'rgba(54, 162, 235, 0.2)',
// 'rgba(255, 206, 86, 0.2)',
// 'rgba(75, 192, 192, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)',
'rgba(255,99,132,1)',
'rgba(255,99,132,1)',
'rgba(255,99,132,1)'
// 'rgba(54, 162, 235, 1)',
// 'rgba(255, 206, 86, 1)',
// 'rgba(75, 192, 192, 1)'
],
borderWidth: 1
},
{
label: '1.3.13 Version',
type: 'bar',
data: [50.0744953192, 93.5542439586, 153.288788005, 101.402897964],
backgroundColor: [
'rgba(54, 162, 235, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(54, 162, 235, 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)'
],
borderColor: [
'rgba(54, 162, 235, 1)',
'rgba(54, 162, 235, 1)',
'rgba(54, 162, 235, 1)',
'rgba(54, 162, 235, 1)'
// 'rgba(255, 206, 86, 1)',
// 'rgba(75, 192, 192, 1)',
// 'rgba(153, 102, 255, 1)'
],
borderWidth: 1
}
]
},
options: {
title: {
display: true,
text: 'Export Chart'
},
legend: {
display: true,
},
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
stepSize:50
}
}]
},
responsive: true
}
});
return myChart;
}
我的问题是我的图表似乎扩展到全屏高度和宽度。 我想将图表大小限制为画布大小。这样我可以在网格而不是每页中放置图表 (注意:我只显示了一个图表的代码,但你可以想象它与其他图表类似)
答案 0 :(得分:1)
将画布包装在div / span / something中并在那里设置大小可能更容易。正如您设置了响应:true表示chart.js尝试在调整大小时填充父级,它通过设置画布高度和宽度来完成此操作。 https://jsfiddle.net/zpvfph9m/1/
<div style="width:50%">
<canvas id="fisheye" width="400" height="400"></canvas>
</div>
这对你有用吗?