1. 项目概述:Plot_setupMultiAxisDemo 是什么?
Plot_setupMultiAxisDemo 是一个基于 ScottPlot 库的多轴绘图演示项目。ScottPlot 是一个开源的 .NET 绘图库,专注于快速、交互式的数据可视化。这个 Demo 展示了如何在同一个图表中创建和使用多个 Y 轴,这对于需要同时展示不同量级或单位的数据系列特别有用。
在实际应用中,我们经常会遇到需要将不同量级的数据绘制在同一张图上的需求。比如同时显示温度(0-100℃)和压力(0-1000kPa)随时间变化的曲线,或者同时展示股价(几十美元)和成交量(数百万股)的变化。传统单轴图表难以清晰展示这种数据,而多轴技术可以完美解决这个问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能解析
2.1 多轴系统架构
ScottPlot 的多轴系统采用了一种灵活的架构设计:
- 主坐标轴系统:默认创建的 X 轴(底部)和 Y 轴(左侧)构成基础坐标系
- 附加坐标轴:可以动态添加额外的 Y 轴(左侧或右侧)和 X 轴(顶部或底部)
- 数据绑定机制:每个数据系列可以独立绑定到特定的坐标轴
在代码中,我们首先获取默认的 Y 轴引用:
csharp复制YAxis1 = formsPlot1.Plot.Axes.Left;
然后创建第二个 Y 轴:
csharp复制YAxis2 = formsPlot1.Plot.Axes.AddLeftAxis();
2.2 数据与轴绑定
数据系列与坐标轴的绑定是关键操作。在 Demo 中,我们为每个信号数据指定了对应的 Y 轴:
csharp复制var sig1 = formsPlot1.Plot.Add.Signal(data1);
sig1.Axes.YAxis = YAxis1;
var sig2 = formsPlot1.Plot.Add.Signal(data2);
sig2.Axes.YAxis = YAxis2;
这种绑定方式使得:
- 数据1使用 YAxis1 的刻度范围(-20 到 20)
- 数据2使用 YAxis2 的刻度范围(-20000 到 20000)
- 两者共享同一个 X 轴时间线
