StripChartX是基于微软MSChart控件实现的记录仪控件,该控件是StripChart的升级版本。StripChartX中加入了测试测量很多常用的特性、尽量简化了对外接口、提高了绘图效率,同时新增分区视图,可以将每条线独立显示到不同的绘图区中。StripChartX的属性、事件和方法如下表所示:

属性

 

属性名称(类型)

功能描述

 

LegendVisible(bool)

设定是否在Chart中显示图例,默认为True

 

BackColor(Color)

设定StripChartX外框颜色

 

ChartAreaBackColor(Color)

设定StripChartX绘图区颜色,该配置同时生效于两种视图

 

ForeColor(Color)

坐标轴Label和名称的字体颜色

 

Font(Font)

坐标轴Label的字体

 

LegendBackColor(Color)

图例的背景色

 

LegendFont(Font)

图例的字体

 

LegendForeColor(Color)

图例的字体颜色

 

SeriesCount(int)

配置未绘图时显示的线条个数、获取当前绘图中的线条个数。

 

GradientStyle(ChartGradientStyle)

背景色渐变类型

 

ScrollType(StripScrollType)

滚动类型。累积类型(积攒到最大点数再滚动)/滚动类型(初始即滚动)

 

DisplayPoints(int)

记录仪最大显示点数,超过该点数的数据被丢弃

 

XDataType(XAxisDataType)

X轴数据类型:索引/时间戳/字符串

 

TimeStampFormat

时间戳格式,XDataType为时间戳时有效

 

NextTimeStamp

下次绘图的首个时间戳,XDataType为时间戳时有效

 

TimeInterval(TimsSpan)

时间间隔,XDataType为时间戳时有效

 

StartIndex(int)

起始索引号,XDataType为索引时有效

 

Direction(ScrollDirection)

滚动方向,从右到左/从左到右

 

Miscellaneous

(MiscellaneousConfiguration)

杂项配置

 

 

MarkerSize(int)

Marker的大小,取值范围[3-21]

 

 

ShowFunctionMenu(bool)

配置在Chart上右键点击,是否显示功能菜单

 

 

MaxSeriesCount(int)

最大线条个数,默认32,超过该值的数据在Chart不显示

 

 

MaxSeriesPointCount(int)

单个线条上最多显示的点数,默认4000,增大该值会提升数据显示的细腻程度,但是会降低性能。

 

 

CheckNaN(bool)

是否校验数据中的NaN数据。如果不检查则Nan显示为空点;如果检查则NaN替换为1.5E-200并显示为空点。

 

 

CheckNegtiveOrZero

是否校验非正数。如果不检查Nan,则非正数替换为空点;如果检查Nan,则非正数替换为1E2001E-200

 

 

CheckInfinity

是否校验Inf数据。如果不检查Nan,则Inf替换为空点;如果检查NanInf替换为1E200-1E200/1E-200

 

 

Fitting(StripChartX.FitType)

筛点拟合算法选择。大数据时使用None可改善绘图速度,但是可能会导致数据趋势的显示错误。

 

 

SplitLayoutDirection

(LayoutDirection)

分区视图的布局方向:从左到右或者从上到下

 

 

SplitViewAutoLayout(bool)

配置分区视图是否自动布局,默认为true。配置为falseDirectionChartCount会生效。

 

 

DirectionChartCount(int)

布局方向的绘图区个数(SplitLayoutDirectionLeftToRight时为一行的绘图区个数,TopToDown时为一列的绘图区个数),该属性在SplitViewAutoLayoutFalse时生效

 

 

SplitLayoutColumnInterval(int)

分区视图每列绘图区之间的像素间隔,可以为负值

 

 

SplitLayoutRowInterval(int)

分区视图每行绘图区之间的像素间隔,可以为负值

 

LineSeries(设计时属性名)

Series(开发时属性名)

(EasyChartXSeriesCollection)

设定每个线条的属性。该属性的配置个数可以超过当前线条数。新增线条按照对应索引进行配置。

 

 

Name(string)

设定线条名称,该名称会被显示到图例中

 

 

Color(Color)

线条颜色

 

 

Visible(bool)

线条是否可见

 

 

Width(LineWidth)

线宽

 

 

XPlotAxis(PlotAxis)

使用哪个X轴,当前版本只可以使用主X轴。

 

 

YPlotAxis(PlotAxis)

使用哪个Y轴,可以选择主Y轴和副Y

 

 

Type(LineType)

线条类型

 

 

Marker(MarkerType)

点标记类型。只有在TypeLine时生效

 

SplitPlotArea

(EasyChartXPlotAreaCollection)

配置和获取分区视图时各个绘图区的属性

 

 

BackColor(Color)

绘图区背景色

 

 

AxisX(EasyChartXAxis)

X坐标轴

 

 

AxisX2(EasyChartXAxis)

X坐标轴

 

 

AxisY(EasyChartXAxis)

Y坐标轴

 

 

AxisY2(EasyChartXAxis)

Y坐标轴

 

 

XCursor(EasyChartXCursor)

X轴游标

 

 

YCursor(EasyChartXCursor)

Y轴游标

 

Axes(EasyChartXAxis[])

AxisX(EasyChartXAxis)

AxisX2(EasyChartXAxis)

AxisY(EasyChartXAxis)

AxisY2(EasyChartXAxis)

坐标轴配置,可以配置X轴、副X轴、Y轴、副Y轴的相关属性。该配置同时生效于两种视图。

 

 

Name(string)

获取坐标轴名称

 

 

Color(Color)

配置坐标轴颜色

 

 

Title(string)

配置坐标轴标题

 

 

TitleOrientation

(AxisTextOrientation)

配置坐标轴标题显示方向

 

 

TitlePosition

(AxisTextPosition)

配置坐标轴标题显示位置

 

 

LabelEnabled(bool)

配置是否显示坐标轴的值

 

 

LabelFormat(string)

配置坐标轴下方标签的格式

 

 

MajorGridEnabled(bool)

主网格使能

 

 

MajorGridColor(Color)

主网格颜色

 

 

MajorGridType(GridType)

主网格线条类型

 

 

MinorGridEnabled(bool)

副网格使能

 

 

MinorGridColor(Color)

副网格颜色

 

 

MinorGridType(GridType)

副网格线条类型

 

 

TickWidth(double)

配置坐标轴上标记线的宽度和Chart/宽的比值

 

 

AutoScale(bool)

坐标轴范围是否自动配置

 

 

Maximum(double)

获取当前坐标轴最大值。未绘图时配置坐标轴最大值;绘图时且AutoScalefalse,可以配置坐标轴最大值。

 

 

Minimum(double)

获取当前坐标轴最小值。未绘图时配置坐标轴最小值;绘图时且AutoScalefalse,可以配置坐标轴最小值。

 

 

IsZoomed(bool)

获取当前坐标轴是否处于缩放状态

 

 

AutoZoomReset(bool)

配置每次绘图时是否取消缩放。

 

 

InitWithScaleView(bool)

配置绘图开始时是否默认使用缩放视图。

 

 

ViewMaximum(double)

获取当前坐标轴缩放视图最大值,InitWithScaleViewtrue时配置开始绘图时坐标轴缩放视图最大值

 

 

ViewMinimum(double)

获取当前坐标轴缩放视图最小值,InitWithScaleViewtrue时配置开始绘图时坐标轴缩放视图最小值

 

 

Zoom(double max, double min)

将当前坐标轴缩放到两个数值的范围内

 

 

ZoomReset(int resetTimes)

回退坐标轴缩放操作

 

Cursors(EasyChartXCursor[])

XCursor(EasyChartXCursor)

YCursor(EasyChartXCursor)

游标配置,可以配置X游标、Y游标的相关属性。该配置同时生效于两种视图。

 

 

Name(string)

获取游标名称

 

 

Mode(CursorMode)

游标类型,包括非使能、游标和区域选择

 

 

Color(Color)

游标颜色

 

 

SelectionColor(Color)

游标区域选择时选择区的颜色

 

 

AutoInterval(bool)

是否自动配置选择间隔

 

 

Interval(double)

AutoInterval时配置游标选择间隔

 

 

Value(double)

游标模式时获取游标当前所在的位置

 

TabCursors(TabCursorCollection)

标签游标的集合

 

 

CursorValueFormat(string)

鼠标在标签游标上时,显示数值的格式

 

 

void Add(TabCursor item)

添加标签游标

 

 

void Clear()

清空标签游标

 

 

TabCursor(TabCursors中的元素)

标签游标类

 

 

TabCursor.Color(Color)

游标颜色

 

 

SeriesIndex(int)

TabCursor绑定到的曲线的索引号,小于0为未绑定。

 

 

TabCursor.Value(double)

游标当前对齐到的X轴的值

 

 

TabCursor.YValue(double)

游标对齐的X轴对应曲线的Y值。只有SeriesIndex有效时可用

 

 

TabCursor.Name(string)

游标名称

 

 

TabCursor.Enabled(bool)

是否显示游标

 

自定义事件

 

AxisViewChanged

坐标轴范围变化时触发该事件

 

 

EasyChartXViewEventArgs

事件参数:

Axis:触发事件的坐标轴

ParentChart:触发事件的EasyChartX实例

IsScaleViewChanged:是否是缩放视图变更触发的事件

IsRaisedByMouseEvent:是否是鼠标操作触发的事件

 

CursorPositionChanged

用户使用游标选择对齐到某条线后触发该事件

 

 

EasyChartXCursorEventArgs

事件参数:

Cursor:触发事件的游标

ParentChart:触发事件的EasyChartX实例

SeriesIndex:触发Cursor事件的线条索引

IsRaisedByMouseEvent:是否鼠标操作触发

 

BeforePlot

绘图区绘制曲线前触发该事件

 

 

EasyChartXPlotEventArgs

事件参数:

IsClear:该事件是否由Clear触发

ParentChart:触发该事件的EasyChartX句柄

 

AfterPlot

绘图区绘制曲线后触发该事件

 

 

EasyChartXPlotEventArgs

IsClear:该事件是否由Clear触发

ParentChart:触发该事件的EasyChartX句柄

 

方法

 

Plot<TDataType>(…)

记录单通道或多通道的多个样点。当记录仪中的样点个数超过DisplayPoints属性值时,前面的点会被丢弃。

Plot方法的泛型重载支持:double/float/int/uint/short/ ushort/byte数据。

 

PlotSingle<TDataType>(…)

记录单通道或多通道的一个样点。当记录仪中的样点个数超过DisplayPoints属性值时,前面的点会被丢弃。

PlotSingle方法的泛型重载支持:double/float/int/uint/ short/ushort/byte数据。

 

SaveAsCsv(string filePath)

保存当前图中的数据到Csv文件,有路径入参和无参两个重载

 

SaveAsImage(string filePath)

保存当前图表到png文件,有路径入参和无参两个重载

 

ZoomReset(double min, double max)

停止所有坐标轴的缩放

 

Clear()

清除当前的所有绘图

 

Windows窗体上放置StripChartX控件后,可以选中该StripChartX控件后在属性表格中对上述属性进行设置。StripChartX支持单通道或多通道的连续或离散波形记录显示,波形的数值范围应该在[-2.5E28, 2.5E28],超出该范围会导致Chart抛出运行时异常。

StripChartX有两种滚动模式:累积模式和滚动模式。累积模式的点数一直累积,直到超过DisplayPoints的值时开始滚动;滚动模式从开始的一侧开始滚动,点数少于DisplayPoints的配置时,部分绘图区显示空白。两种模式的显示效果分别如下图所示: