Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在所有缩放级别上实时准确绘制大型数据矢量?

我有大型数据集(10 Hz数据,因此每24小时864k点)需要实时绘制。这个想法是用户可以缩放和平移到高度详细的散点图。

数据不是很连续,并且有峰值。由于数据集太大,因此每次刷新图时我都无法绘制每个点。

但是我也不能只画每n个点,否则我会错过主要特征,例如大而短的尖峰。

Matlab做得对。您可以给它一个全为零的864k向量,只需将任何一点设置为1,它就会通过缩放和平移实时正确绘制。

Matlab是如何做到的?

我的目标系统是Java,因此我将在Swing / Java2D中生成此图的视图。


回答:
您应该尝试使用MATLAB Central中的文件:

https://mathworks.com/matlabcentral/...wnsampled-plot



来自作者:

此版本的“绘图”将使您可视化包含大量元素的数据。绘制大型数据集会使图形变慢,但是大多数情况下,您不需要绘制中显示的所有信息。您的屏幕只有这么多像素,您的眼睛将无法检测到屏幕上未捕获的任何信息。

此功能将对数据进行下采样并仅绘制数据的子集,从而改善了内存需求。放大绘图时,将显示更多信息。已经完成一些工作以确保捕获异常值。

句法:

dsplot(x, y) dsplot(y) dsplot(x, y, numpoints) 例:

x =linspace(0, 2*pi, 1000000); y1=sin(x)+.02*cos(200*x)+0.001*sin(2000*x)+0.0001*cos(20000*x); dsplot(x,y1);

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:51


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.