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

Chart.js实现X轴为time类型的双Y轴时间序列图表开发方案

Chart.js 多Y轴时间序列图表实现方案

实现说明

对原有单轴配置做两处核心调整即可支持多Y轴时间序列展示,X轴的time类型配置完全保留,兼容unixTime格式的输入数据:

  • 在scales配置块中新增第二个Y轴,设置独立的显示位置、标题、样式,关闭冗余网格线避免视觉干扰
  • 为每个数据集新增yAxisID属性,和对应Y轴的ID绑定

完整可运行代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.30.1/date_fns.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
<!-- 若使用代码中的jQuery选择器,请确保已引入jQuery依赖,也可替换为原生DOM操作 -->

<canvas id="myChart"></canvas>
<script type="text/javascript">
    // 预置两个符合要求的时间序列数据集,格式均为[{x: unix时间戳, y: 数值}, ...]
    // const carSpeedData = [...];
    // const carRemainingFuelData = [...];

    $("#myChart").width($(window).width() * 0.97);
    $("#myChart").height($(window).height() * 0.8);

    const ctx = document.getElementById('myChart').getContext('2d');

    const chartConfig = {
        type: 'line',
        data: {
            datasets: [
                {
                    label: '车速',
                    data: carSpeedData,
                    borderColor: 'pink',
                    yAxisID: 'y' // 绑定到左侧Y轴
                },
                {
                    label: '剩余油量',
                    data: carRemainingFuelData,
                    borderColor: 'lightblue',
                    yAxisID: 'y1' // 绑定到右侧Y轴
                }
            ]
        },
        options: {
            parsing: false,
            normalized: true,
            animation: false,
            responsive: false,
            scales: {
                x: {
                    type: 'time',
                    title: {
                        display: true,
                        text: '时间(客户端时区)',
                        font: {
                            size: 24
                        }
                    }
                },
                y: {
                    title: {
                        display: true,
                        text: '车速(英里/小时)',
                        font: {
                            size: 24
                        }
                    }
                },
                // 新增第二个Y轴配置
                y1: {
                    position: 'right',
                    title: {
                        display: true,
                        text: '剩余油量(%)',
                        font: {
                            size: 24
                        }
                    },
                    grid: {
                        drawOnChartArea: false // 不重复绘制网格线,避免界面混乱
                    }
                }
            }
        }
    }

    new Chart(ctx, chartConfig);
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:03