高性能图表控件LightningChart关于显示频谱图的过去数据问题解答
作者:互联网
LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据——超过10亿个数据点。LightningChart包括广泛的2D、高级3D、Polar、Smith、3D饼/甜甜圈、地理地图和GIS图表以及适用于科学、工程、医学、航空、贸易、能源和其他领域的体位功能。
LightningChart.NET重加入在线订购,SignalTools,12个月,WPF版本原价405元,现价3499元,现在抢购立享优惠!立即购买>>
点击下载LightningChart.NET最新试用版 LightningChart JS最新试用版
Q:显示频谱图的过去数据
首先,我为我糟糕的英语感到抱歉。
我正在为 Spectrogram 开发软件。
正在通过参考演示应用程序的高分辨率频谱图进行实施。
此演示应用程序中的示例代码表明您正在使用 IntensityGridSeries 绘制光谱。
我想要开发的是让用户通过做一些事情(例如,使用鼠标滚轮等)来查看过去的数据。
下图显示了我目前正在实施的图表。我只添加了暂停数据显示的功能。演示应用程序的实现方式几乎没有区别。
在暂停数据的显示之后,需要使用特定动作查看过去数据的功能。
我附上更多图片以帮助您理解我的问题。
F:这应该可以做到,但可能有点棘手。问题是,由于技术原因,您不能拥有一个巨大的连续 IntensityGridSeries,您可以向后滚动。现在的标准 PC 使用 DirectX 11,最大纹理尺寸限制为 16384,可以防止这种情况。此外,dotNET 对数组大小有限制 - 每个数组 2GB(尽管通常可以通过设置 LargeAddressAware 标志来增加)。因此,您可能无法将所有当前和过去的数据点存储在单个数组中。此外,性能可能会显着下降。
一种方法是为过去的点设置一个单独的数据数组。例如,您可以将稍后要查看的数据存储在该数组中,然后通过将其分配为频谱图的数据来显示它。
_spectrogram.SetColorsData(_colorsDataPastPoints, IntensityGridValuesDataOrder.RowsColumns);
_spectrogram.InvalidateColorsOnly();
您也可以以同样的方式切换回主(当前)数据。
当然,您为过去的点创建的每个新数组都会增加应用程序使用的内存。因此,您应该仔细考虑需要多少个单独的数组来存储过去的数据点,因为例如,如果您的应用程序应该运行数小时,那么将所有过去的数据存储在数组中很可能是不明智的。如果您只需要显示前几秒,这种方法应该可以正常工作。
如果有任何疑问,请联系客服以获取更多信息。
如果您对该图表控件感兴趣,欢迎加入图表控件QQ交流群:740060302
标签:控件,数据,过去,应用程序,问题解答,图表,数组,LightningChart 来源: https://blog.csdn.net/RoffeyYang/article/details/118519517