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

SciChart技术问询:如何在数值轴上仅显示指定刻度标签?

在SciChart中自定义数值轴的主刻度显示

核心结论

不需要使用Custom LabelProvider,它主要负责刻度标签的格式转换,而你需要的是控制哪些刻度位置显示,直接通过显式刻度设置或自定义Tick Provider即可实现。

实现方法

方法一:直接指定显式刻度(最简单)

通过禁用自动刻度计算,直接给轴指定要显示的主刻度数组:

// 创建数值轴
var numericAxis = new NumericAxis();
// 设置轴范围
numericAxis.VisibleRange = new DoubleRange(0, 500);
// 关闭自动刻度生成
numericAxis.AutoTicks = false;
// 指定要显示的主刻度位置
numericAxis.Ticks = new double[] { 0, 10, 25, 50, 100, 250, 500 };
// 禁用次刻度(按需设置)
numericAxis.MinorTicks = new double[0];
// 确保标签可见
numericAxis.DrawLabels = true;

方法二:自定义Tick Provider(适合动态场景)

如果需要动态调整刻度逻辑,可创建自定义NumericTickProvider重写刻度生成逻辑:

public class CustomNumericTickProvider : NumericTickProvider
{
    protected override void UpdateTicks(IAxisParams axisParams)
    {
        // 清空原有刻度集合
        MajorTicks.Clear();
        MinorTicks.Clear();
        
        // 添加自定义主刻度
        var targetTicks = new double[] { 0, 10, 25, 50, 100, 250, 500 };
        MajorTicks.AddRange(targetTicks);
        
        // 若需次刻度,可在此添加对应数组,否则留空
        // MinorTicks.AddRange(...);
    }
}

// 应用到轴上
var numericAxis = new NumericAxis();
numericAxis.VisibleRange = new DoubleRange(0, 500);
numericAxis.TickProvider = new CustomNumericTickProvider();

补充说明

  • Custom LabelProvider仅用于修改刻度标签的显示形式(比如将数字格式化为百分比、货币等),不负责控制刻度的显示位置。
  • 两种方法都能确保仅在你指定的位置显示带标签的主刻度,根据场景选择即可:静态刻度选方法一,动态逻辑选方法二。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:52:44