javascript - 将图表绑定(bind)到 Canvas 高度宽度

标签 javascript html canvas chart.js

我正在使用 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;
    }

我的问题是我的图表似乎扩展到全屏高度和宽度。 我想将图表大小限制为 Canvas 大小。这样我就可以将图表放在网格中而不是每页中 (注意:我只显示了一张图表的代码,但您可以想象其他图表的代码类似)

最佳答案

将 Canvas 包裹在 div/span/something 中并在那里设置大小可能会更容易。当您设置了responsive: true时,这意味着chart.js会尝试在调整大小时填充父级,并通过设置 Canvas 高度和宽度来实现此目的。 https://jsfiddle.net/zpvfph9m/1/

<div style="width:50%">
   <canvas id="fisheye" width="400" height="400"></canvas>
</div>

这对你有用吗?

关于javascript - 将图表绑定(bind)到 Canvas 高度宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723360/

相关文章:

javascript - 使用 Javascript 将我的 html 输入限制为仅文本并警告用户?

javascript - 如何在 paper.js 中调整光栅(图像)的大小?

javascript - Html 到 Canvas 到 Base64 到 PDF

html - 使用纯HTML/CSS在等高列布局中分隔图像的替代方法

html - 如何在表格中固定标题?

javascript - 如何使用 react 检查元素是否存在?

javascript - Sequelize - 从父实例中删除关联记录

javascript - 如何更改html5 Canvas 线的起点和终点位置?

javascript - JS 否则/否则如果

javascript - 如何在javascript文件中添加区域,visual studio