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

QuickChart Y轴自动缩放行为差异:是Bug还是有意设计?

版本1

当我在PowerShell中执行以下操作时:

$json = @"

{
    "chart": {
        "data": {
            "labels": [
                "2022-06-30",
                "2022-07-01",
                "2022-07-05",
                "2022-07-06",
                "2022-07-07"
            ],
            "datasets": [
                {
                    "data": [
                        5801404000000.0,
                        6060626000000.0,
                        6085791000000.0,
                        6035882000000.0,
                        6053350000000.0
                    ],
                    "label": "Net Liquidity"
                }
            ]
        },
        "options": {
            "scales": {}
        },
        "type": "bar"
    }
}

"@

Invoke-RestMethod -Method Post -Uri 'https://quickchart.io/chart' -Body $json -ContentType 'application/json' -OutFile C:\temp\test-2.png

Start-Process C:\temp\test-2.png

得到如下结果:
图表展示
效果良好!注意此时Y轴已进行适当缩放。

版本2

但如果我执行以下操作:

$json = @"

{
    "chart": {
        "data": {
            "labels": [
                "2022-06-30",
                "2022-07-01",
                "2022-07-05",
                "2022-07-06",
                "2022-07-07"
            ],
            "datasets": [
                {
                    "data": [
                        5801404000000.0,
                        6060626000000.0,
                        6085791000000.0,
                        6035882000000.0,
                        6053350000000.0
                    ],
                    "label": "Net Liquidity"
                }
            ]
        },
        "options": { },
        "type": "bar"
    }
}

"@

Invoke-RestMethod -Method Post -Uri 'https://quickchart.io/chart' -Body $json -ContentType 'application/json' -OutFile C:\temp\test-2.png

Start-Process C:\temp\test-2.png

得到如下结果:
图表展示
注意此时Y轴从0开始。

差异对比

版本1使用的配置为:

"options": {
            "scales": {}
        },

而版本2使用的配置为:

"options": { },
技术问询

请问该现象是QuickChart的Bug,还是有意设计的行为?若是有意设计,相关说明文档在哪里可以找到?


回答

这是QuickChart的有意设计行为,并非Bug。

QuickChart基于Chart.js构建,Chart.js针对柱状图有默认规则:未显式配置缩放选项时,柱状图Y轴默认从0开始,这是为了遵循数据可视化规范,避免截断柱状图底部造成数据比例误导。

当你在options中声明scales: {}时,相当于触发了缩放配置的初始化逻辑,此时Chart.js会启用自适应缩放——根据数据范围自动调整Y轴起止值,覆盖柱状图默认的从0开始的规则。

该逻辑属于Chart.js核心行为的延伸,QuickChart的文档会指向Chart.js官方配置说明,其中明确了坐标轴缩放的相关规则:柱状图默认强制Y轴起始于0,除非通过显式配置(哪怕是空的scales对象)修改这一行为。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:25:23