You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChartJS折线图响应式设置:固定字体大小需求咨询

解决ChartJS画布缩小时文本过小的问题

完全可以实现,核心思路是为图表的各类文本元素设置固定像素的字体大小,替代ChartJS默认的相对缩放逻辑。具体配置方式如下:

1. 针对所有文本元素设置固定字体大小

在ChartJS的options配置项中,分别为标题、图例、坐标轴刻度/标题等文本元素指定font.size为固定像素值,示例代码如下:

const ctx = document.getElementById('myLineChart').getContext('2d');
const lineChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: ['一月', '二月', '三月', '四月', '五月'],
        datasets: [{
            label: '销售额',
            data: [1200, 1900, 3000, 5000, 2500],
            borderColor: '#36A2EB',
            tension: 0.1
        }]
    },
    options: {
        // 保持图表响应式(适应容器宽度)
        responsive: true,
        maintainAspectRatio: true,
        plugins: {
            // 标题字体设置
            title: {
                display: true,
                text: '月度销售额趋势',
                font: {
                    size: 16 // 固定16px,不受画布缩放影响
                }
            },
            // 图例字体设置
            legend: {
                labels: {
                    font: {
                        size: 14 // 固定14px
                    }
                }
            }
        },
        scales: {
            // X轴文本设置
            x: {
                ticks: {
                    font: {
                        size: 12 // 刻度字体固定12px
                    }
                },
                title: {
                    display: true,
                    text: '月份',
                    font: {
                        size: 14 // X轴标题固定14px
                    }
                }
            },
            // Y轴文本设置
            y: {
                ticks: {
                    font: {
                        size: 12 // 刻度字体固定12px
                    }
                },
                title: {
                    display: true,
                    text: '销售额(元)',
                    font: {
                        size: 14 // Y轴标题固定14px
                    }
                }
            }
        }
    }
});

2. 原理说明

ChartJS默认会根据画布的实际渲染尺寸自动缩放文本大小,当容器宽度从1500px缩到750px时,文本也会按比例缩小。通过显式设置font.size为固定像素值,就能强制文本保持指定大小,不受画布尺寸变化影响。

注意事项

  • 如果你的图表包含其他文本元素(如工具提示),同样可以在对应配置项中设置font.size,比如在plugins.tooltip.bodyFont.size中指定固定值。
  • 保持responsive: true可以让图表继续适应容器宽度,只是文本大小不再跟随缩放。

内容的提问来源于stack exchange,提问作者aslanks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:47:10