上一篇
<!-- 在HTML头部添加 --> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<canvas id="dynamicChart" width="800" height="400"></canvas>
const ctx = document.getElementById('dynamicChart').getContext('2d'); const chart = new Chart(ctx, { type: 'line', data: { labels: ['周一', '周二', '周三', '周四', '周五'], datasets: [{ label: '实时销量', data: [120, 190, 300, 500, 800], borderColor: 'rgb(75, 192, 192)', tension: 0.4 // 曲线柔顺度 }] }, options: { responsive: true, scales: { y: { beginAtZero: true } }, animation: { duration: 2000 } // 加载动画 } });
// 每3秒更新一次数据(模拟实时流) setInterval(() => { const newData = Array.from({length:5}, () => Math.floor(Math.random()*1000)); chart.data.datasets[0].data = newData; chart.update(); // 触发平滑更新 }, 3000);
// 结合WebSocket接收实时数据 const socket = new WebSocket('wss://your-api.com/realtime'); socket.onmessage = (event) => { const realtimeData = JSON.parse(event.data); chart.data.datasets[0].data = realtimeData; chart.update(); };
datasets: [ { label: '产品A', data: [...], borderColor: '#FF6B6B' }, { label: '产品B', data: [...], borderColor: '#4ECDC4' } ]
options: { plugins: { tooltip: { backgroundColor: 'rgba(0,0,0,0.8)', titleColor: '#FFD700', bodyColor: '#FFFFFF' }, zoom: { pan: { enabled: true }, zoom: { wheel: { enabled: true } } } } }
Q: Charts.js和ECharts怎么选?
A: 简单动态场景选Charts.js(200KB),复杂3D/GIS选ECharts(1MB+)。
Q: 移动端兼容性如何?
A: 完美适配!响应式设计+触摸交互,手机端查看无压力📱。
Q: 大数据量下如何优化性能?
A: 启用decimation
插件抽稀数据,或切换WebGL渲染(需引入第三方库)。
信息来源:Charts.js v4.4.8官方文档(2025-08-20更新)、2025年数据可视化趋势报告。
本文由 业务大全 于2025-08-21发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://xdh.7tqx.com/wenda/680972.html
发表评论