LightningChart数据可视化图形控件使用篇24-通过NaN值或其他值实现DataBreaking、ClipAreas

2,387 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

通过NaN值或其他值实现DataBreaking

演示示例: Data breaking in series

微信截图_20220506110227.png 图:系列中支持DataBreaking 的几个选项

以下系列类型支持数据中断:

• PointLineSeries

• FreeformPointLineSeries

• SampleDataSeries

• AreaSeries

• HighLowSeries

• PointLineSeries3D

LightningChart 跳过与指定的断开值匹配的数据点的渲染,但可正常渲染其他值。

微信截图_20220506110340.png 图:DataBreaking 用于 PointLineSeries、SampleDataSeries、AreaSeries 和 HighLowSeries.

注意! 当设置DataBreaking.Enabled = True, 会引发明显的额外消耗,不建议用于需要非常高的实时数据速率的解决方案。可考虑使用ClipAreas, 参阅章节下文ClipAreas。

例如,使用NaN 中断PointLineSeries 数据:

微信截图_20220506110528.png 图:使用NaN值中断 PointLineSeries.

代码:

int pointCount = 101;
double[] xValues = new double[pointCount];
double[] yValues = new double[pointCount];

for (int point = 0; point < pointCount; point++)
{
xValues[point] = (double)point * interval;
yValues[point] = 30.0 + 5.0 * Math.Sin((double)point / 20.0);
}

//在Y数组中添加一些NaN值来标记中断点
yValues[40] = double.NaN;
yValues[70] = double.NaN;
yValues[71] = double.NaN;
yValues[72] = double.NaN;
yValues[73] = double.NaN;
yValues[90] = double.NaN;
yValues[91] = double.NaN;

//设置DataBreaking Enabled来添加新系列
        PointLineSeries pls = new PointLineSeries(_chart.ViewXY, _chart.ViewXY.XAxes[0], 
        _chart.ViewXY.YAxes[0];
pls.DataBreaking.Enabled = true;

//设置定义值的数据间隙(默认值= NaN)
pls.DataBreaking.Value = double.NaN;
SeriesPoint[] points = new SeriesPoint[pointCount];
for (int point = 0; point < pointCount; point++)
{ 
  points[point].X = xValues[point];
  points[point].Y = yValues[point];
}

//为点线系列分配数据
pls.Points = points;

//将创建的点线系列添加到PointLineSeries列表中
_chart.ViewXY.PointLineSeries.Add(pls);

ClipAreas

演示示例: Clip areas

与 DataBreaking 类似(参阅上文),ClipAreas可用于避免渲染一部分系列数据。这可以用来筛选不良数据范围,Y值范围外的数据等等。

ViewXY视图的系列具有SetClipAreas 方法可设置或更新裁剪区域。它可接受一个ClipArea结构的数组。ClipAreas数组可以频繁变更,并且性能保持良好,最多可高达数千个ClipAreas。

ClipArea 适用于其被分配给的系列。注意此为处于渲染阶段的裁剪,当鼠标置于ClipArea上方时,如果ClipArea下有实际的数据,鼠标操作则会相应系列。

微信截图_20220506111256.png 图:为2个系列定义ClipAreas; 分别为PointLineSeries、AreaSeries和IntensityGridSeries. 左侧,未使用ClipAreas ;右侧,启用ClipAreas;对于黄色的PointLineSeries, 经定义了X维度的裁剪区域来掩盖低振幅数据;对于红色的AreaSeries, Y维度的ClipArea从顶部剪切太高的振幅数据;对于IntensityGridSeries, X维度和Y维度的ClipAreas用于防止系列在特定区域中渲染。

使用ClipAreas是在性能方面应考虑的首选方法,它将线分割成多个数据段,而不是使用DataBreaking特性,或者在实时监视期间生成数百个单独的系列。

关于LightningChart数据可视化图形控件使用篇24-通过NaN值或其他值实现DataBreaking、ClipAreas 章节就分享到这里了。

如果在实际应用中遇到技术问题或需要帮助,可以添加下方微信号联系官方技术支持。

微信号:lightningchart_china

如果您想进一步使用LightningChart数据可视化图形控件,请添加后回复“学习”可免费领取一套全功能版LightningChart数据可视化控件。

后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢!

最新版V10 LightningChart下载地址:猛击下载