SciChart WPF v9.0 更新详解:矢量场图表、堆叠箱线图与 MVVM 轴同步来了

SciChart WPF 是一款面向金融、医疗、工程等场景的高性能 WPF 图表库,基于自研 Visual Xccelerator 引擎与 DirectX 硬件加速,可实时渲染海量数据点,并内置 2D / 3D 图表、交互能力与 MVVM API,结合 Avalonia XPF 还可跨平台运行于 Linux。

在 v9.0 版本中,官方在图表类型、MVVM 能力与性能上做了一次集中更新。下面按更新点逐一说明。

一、v9.0 更新总览

v9.0 相对 v8.x 的主要变化可以归纳为以下六点:

  • 矢量场图表(VectorFieldRenderableSeries):新增在二维平面渲染箭头向量的能力,用于风场、流体、电场等方向量可视化。
  • 堆叠箱线图(StackedBoxPlotRenderableSeries):支持在同一 X 位置并排渲染多个箱线图,便于跨类别比较统计分布。
  • MVVM 轴同步 API :通过 IAxisViewModelRangeSyncGroupId 跨多图表联动 VisibleRange,无需代码后置。
  • 延迟缩放 :新增 ZoomExtentsWhenReady / ZoomExtentsWhenReadyAsync 扩展方法。
  • 性能提升:MVVM 轴 API 的初始化性能提升约 30%。
  • 新增示例:包括定向天线辐射方向图 3D 示例、赛车遥测仪表盘示例、矢量场示例,以及 MVVM 轴范围同步教程(Tutorial 10b)。

二、核心新特性详解

2.1 矢量场图表(VectorFieldRenderableSeries)

矢量场系列可在二维平面上以箭头向量呈现方向量数据,适用于风场、流体、电磁场等场景。

  • 数据输入 :支持 Uniform(规则网格)与 NonUniform(散点)两种数据系列,并支持以极坐标方式输入。
  • 着色模式(Color Mode)Solid(单一颜色)、ByMagnitude(按量级着色)、ByDirection(按方向着色)三种。
  • 长度模式(Length Mode)DataUnitsMagnitudePixelsFixedPixels 三种,控制箭头长度的表达方式。
  • 交互能力:支持命中测试(Hit-Test)、工具提示(Tooltips),并支持通过 MVVM 绑定数据。

2.2 堆叠箱线图(StackedBoxPlotRenderableSeries)

堆叠箱线图系列可在同一 X 位置并排渲染多个箱线图,便于跨类别比较统计分布。

要点:

  • 使用 StackedGroupId 控制分组;
  • 使用 Spacing 控制各组之间的间距;
  • 支持 MVVM 绑定。

2.3 MVVM 轴同步 API

新增基于 ViewModel 的轴范围同步机制,无需代码后置即可联动多个图表。

  • 通过 IAxisViewModelRangeSyncGroupId 跨多图表联动 VisibleRange
  • 适用于仪表盘、多图联动等需要在同一视图中保持坐标轴一致的场景。

2.4 延迟缩放(Zoom Extents When Ready)

新增用于延迟执行的缩放扩展方法,可在数据与坐标轴准备就绪后再执行 Zoom Extents:

  • ZoomExtentsWhenReady
  • ZoomExtentsWhenReadyAsync

该方法在异步加载数据、需要等待坐标轴就绪后再自动缩放的场景中较为实用。

2.5 性能提升

MVVM 轴 API 的初始化性能提升约 30%,在包含大量图表与轴的仪表盘场景下表现更明显。

2.6 新增示例

v9.0 新增及更新的官方示例包括:

  • Directional Antenna Radiation Pattern 3D Chart:定向天线辐射方向图 3D 示例;
  • Racing Telemetry Dashboard Demo:赛车遥测仪表盘示例;
  • Vector Field 示例:矢量场图表示例;
  • Tutorial 10b:MVVM 轴范围同步教程。

以下为部分官方示例效果截图

3D表面网格(Surface Mesh)

3D期限极限(Tenor Curves)

交易绘图注解工具

FIFO十亿点折线图


三、代码示例

下面给出示意代码,帮助理解 v9.0 中较常用的新 API。

MVVM 轴范围同步

在 ViewModel 中为多个轴指定相同的 RangeSyncGroupId,即可实现多图表坐标轴联动:

复制代码
// ViewModel 中对多个轴使用同一分组 Id
var axisA = new NumericAxisViewModel { RangeSyncGroupId = "GroupA" };
var axisB = new NumericAxisViewModel { RangeSyncGroupId = "GroupA" };

// 任一轴改变 VisibleRange 时,同组的其他轴会同步联动

四、小结

SciChart WPF v9.0 在图表类型上补齐了矢量场与堆叠箱线图,在 MVVM 使用体验上新增了轴范围同步与延迟缩放能力,并对轴 API 初始化性能做了约 30% 的提升。对于已有 WPF / .NET 图表需求、特别是需要方向量可视化、统计分布对比或多图联动仪表盘的项目,v9.0 值得关注。

相关推荐
鱼听禅5 小时前
C#学习笔记-Entity Framework Core基础操作学习
c#·orm·ef core
海盗12346 小时前
.NET编码规范05-Roslyn分析器与StyleCop
.net
Z5998178416 小时前
c#软件开发学习笔记--分组、游标与临时表、分页
笔记·学习·c#
rick9777 小时前
用 C# 从零搭建本地知识库:RAG 系统完整实战
c#
He BianGu7 小时前
【笔记】WPF中 Brush 的类型、继承关系、使用方式和注意事项
笔记·wpf
Z5998178418 小时前
c#软件开发学习笔记--事务、索引
笔记·学习·c#
geovindu8 小时前
CSharp: Composite Pattern
开发语言·后端·c#·组合模式·结构型模式
LeoTao8 小时前
C#专题-C# 异常处理
c#