本文讲解如何在单页 html 中同时渲染多个 chart.js 图表(如 4 个独立柱状图),解决因 dom 元素未就绪或重复覆盖 window.mybar 导致仅最后一个图表显示的问题。
在使用 Chart.js 时,一个常见误区是:为多个 canvas> 元素依次调用 new Chart(),却未确保每个 canvas 已存在于 DOM 中,或错误复用同一变量名(如 window.myBar)导致后续实例被覆盖。此外,Chart.js v3+ 的配置结构也与旧版不同(例如 legend.display 现位于 plugins.legend 下),若混用旧写法会导致选项失效。
✅ 正确做法是:
以下是完整、可运行的示例代码:
Multiple Chart.js Charts Bars #1
Bars #2
Bars #3
Bars #4
? 关键注意事项:
charts[id] = new Chart(...))。? 进阶提示:如需差异化数据(例如每张图展示不同年份销量),可将 commonData 改为工厂函数,传入参数动态生成数据集,实现灵活复用。
通过以上方式,你就能在页面中稳健、清晰地渲染任意数量的 Chart.js 图表。