EasyChartX是基于微软MSChart控件实现的自定义控件,该控件是EasyChart的升级版本。EasyChartX中加入了测试测量很多常用的特性、尽量简化了对外接口、提高了绘图效率,同时新增分区视图,可以将每条线独立显示到不同的绘图区中。EasyChartX的属性、事件和方法如下表所示:
属性 |
|
||
属性名称(类型) |
功能描述 |
|
|
LegendVisible(bool) |
设定是否在Chart中显示图例,默认为True。 |
|
|
BackColor(Color) |
设定EasyChartX外框颜色 |
|
|
ChartAreaBackColor(Color) |
设定EasyChartX绘图区颜色,该配置同时生效于两种视图 |
|
|
ForeColor(Color) |
坐标轴Label和名称的字体颜色 |
|
|
Font(Font) |
坐标轴Label的字体 |
|
|
LegendBackColor(Color) |
图例的背景色 |
|
|
LegendFont(Font) |
图例的字体 |
|
|
LegendForeColor(Color) |
图例的文字颜色 |
|
|
SeriesCount(int) |
配置未绘图时显示的线条个数、获取当前绘图中的线条个数。 |
|
|
GradientStyle(ChartGradientStyle) |
背景色渐变类型 |
|
|
SplitView(bool) |
是否分区视图显示,默认为false |
|
|
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(EasyChartX.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时配置开始绘图时坐标轴缩放视图最小值 |
|
|
IsLogarithmic(bool) |
当前坐标轴是否使用指数显示 |
|
|
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:是否鼠标操作触发 |
|
TabCursorChanged |
TabCursor被操作或移动后触发该事件 |
|
|
|
TabCursorEventArgs |
事件参数: Cursor:触发该事件的TabCursor ParentChart:触发该事件的EasyChartX Operation:事件触发操作类型:值被修改、添加Cursor、删除Cursor ParentChartAre:TabCursor所在的绘图区对象 |
|
BeforePlot |
在绘图区绘制曲线前触发该事件 |
|
|
|
EasyChartXPlotEventArgs |
事件参数: IsClear:该事件是否由Clear触发 ParentChart:触发该事件的EasyChartX句柄 |
|
AfterPlot |
在绘图区绘制曲线后触发该事件 |
|
|
|
EasyChartXPlotEventArgs |
IsClear:该事件是否由Clear触发 ParentChart:触发该事件的EasyChartX句柄 |
|
方法 |
|
||
Plot<TDataType>(…) |
显示单通道或多通道连续波形、单通道或多通道离散波形。该方法二维数组的重载包含majorOrder(MajorOrder)的入参,用以配置按行绘图还是按列绘图。 Plot方法的泛型重载支持:double/float/int/uint/short/ ushort/byte数据。 |
|
|
AddDataMarker(…) |
在当前绘图中添加数据标记,这些标记在下次Plot或者Clear时会被清空。单次绘图可以多次添加Marker。 |
|
|
SaveAsCsv(string filePath) |
保存当前图中的数据到Csv文件,有路径入参和无参两个重载 |
|
|
SaveAsImage(string filePath) |
保存当前图表到png文件,有路径入参和无参两个重载 |
|
|
ZoomReset(double min, double max) |
停止所有坐标轴的缩放 |
|
|
Clear() |
清除当前的所有绘图 |
|
在Windows窗体上放置EasyChartX控件后,可以选中该EasyChartX控件后在属性表格中对上述属性进行设置。EasyChartX支持单通道或多通道的连续或离散波形显示,波形的数值范围应该在[-2.5E28, 2.5E28],超出该范围会导致Chart抛出运行时异常。此处的连续波形是指波形上任意相邻的两个点在X轴上均有相同的间隔,通常用于时域采样波形或频谱显示,在调用Plot方法显示连续波形时,除了输入波形数据,还可设定X轴上的起始位置和间隔;而离散波形是指波形上的任意一个点,都由独立的一对x和y来确定其在Chart上的位置,在调用Plot方法显示离散波形时,必须输出等长的两个数组,一一对应为各点在Chart上的位置。详细使用方法参照EasyChartX的例程,下图是一组正弦信号在EasyChartX两种模式的绘图效果。使用方法参见范例SeeSharpExamples/ EasyChartX Example。