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,则非正数替换为1E200和1E-200 |
|
|
CheckInfinity |
是否校验Inf数据。如果不检查Nan,则Inf替换为空点;如果检查Nan则Inf替换为1E200和-1E200/1E-200。 |
|
|
Fitting(StripChartX.FitType) |
筛点拟合算法选择。大数据时使用None可改善绘图速度,但是可能会导致数据趋势的显示错误。 |
|
|
SplitLayoutDirection (LayoutDirection) |
分区视图的布局方向:从左到右或者从上到下 |
|
|
SplitViewAutoLayout(bool) |
配置分区视图是否自动布局,默认为true。配置为false时DirectionChartCount会生效。 |
|
|
DirectionChartCount(int) |
布局方向的绘图区个数(SplitLayoutDirection为LeftToRight时为一行的绘图区个数,TopToDown时为一列的绘图区个数),该属性在SplitViewAutoLayout为False时生效 |
|
|
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) |
点标记类型。只有在Type为Line时生效 |
|
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) |
获取当前坐标轴最大值。未绘图时配置坐标轴最大值;绘图时且AutoScale为false,可以配置坐标轴最大值。 |
|
|
Minimum(double) |
获取当前坐标轴最小值。未绘图时配置坐标轴最小值;绘图时且AutoScale为false,可以配置坐标轴最小值。 |
|
|
IsZoomed(bool) |
获取当前坐标轴是否处于缩放状态 |
|
|
AutoZoomReset(bool) |
配置每次绘图时是否取消缩放。 |
|
|
InitWithScaleView(bool) |
配置绘图开始时是否默认使用缩放视图。 |
|
|
ViewMaximum(double) |
获取当前坐标轴缩放视图最大值,InitWithScaleView为true时配置开始绘图时坐标轴缩放视图最大值 |
|
|
ViewMinimum(double) |
获取当前坐标轴缩放视图最小值,InitWithScaleView为true时配置开始绘图时坐标轴缩放视图最小值 |
|
|
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的配置时,部分绘图区显示空白。两种模式的显示效果分别如下图所示: