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

如何让Apex Charts的X、Y轴按相同比例缩放?

解决Blazor-ApexCharts缩放时XY轴比例不一致的问题

要让X、Y轴保持相同比例缩放,核心是启用轴范围同步并确保图表宽高比匹配,以下是具体实现步骤:

1. 启用XY轴范围同步

在X轴和Y轴的配置中设置SyncExtremes="true",这会让两个轴的缩放范围完全同步——当你缩放X轴到100-400区间时,Y轴会自动调整到相同范围,保证X=y的直线始终保持对角线形态。

2. 配置缩放模式

开启图表的XY轴缩放支持,确保缩放操作能同时作用于两个轴(或单个轴触发同步)。

3. 固定图表宽高比(可选但关键)

如果图表容器的宽高比不是1:1,即使轴范围同步,视觉上X=y的线仍可能变形。可以通过设置图表的宽高为相同值,或给容器添加CSS宽高比约束来解决。

完整代码示例

<ApexChart TItem="EqualityPoint" 
           Title="等比例XY图表"
           Width="600"
           Height="600">
    <ApexLineSeries TItem="EqualityPoint"
                    Name="X=Y"
                    XValue="@(p => p.X)"
                    YValue="@(p => p.Y)" />
    <ApexXAxis SyncExtremes="true" 
               Min="0" 
               Max="500"
               TickAmount="6" />
    <ApexYAxis SyncExtremes="true" 
               Min="0" 
               Max="500"
               TickAmount="6" />
    <ApexZoom Enabled="true" 
              Type="ZoomType.XY" />
</ApexChart>

@code {
    public class EqualityPoint
    {
        public int X { get; set; }
        public int Y { get; set; }
    }

    private List<EqualityPoint> _dataPoints = new();

    protected override void OnInitialized()
    {
        // 生成X与Y相等的数据集
        _dataPoints = Enumerable.Range(0, 501)
                                .Select(i => new EqualityPoint { X = i, Y = i })
                                .ToList();
    }
}

关键说明

  • SyncExtremes="true"是实现同步缩放的核心配置,必须同时在X轴和Y轴上设置。
  • ZoomType.XY允许用户通过拖拽同时缩放XY轴,若只需要单轴缩放(比如仅X轴),Y轴仍会自动同步范围。
  • 初始设置Min和Max为0-500,确保初始状态下轴比例一致;TickAmount统一刻度数量,进一步强化视觉比例匹配。
  • 之前尝试的ForceNiceScale等属性可能会干扰同步逻辑,建议暂时移除,待同步功能生效后再按需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:56:05