您好,提前感谢您的帮助!我使用 MATLAB 制作了具有 4 个颜色组的 3D 散点图(已上传,见下文)。现在我想根据时间为散点图设置动画。因此,如果每个点都有时间戳,我想按顺序显示它们。
例如:如果我有点 A、B、C 在汽车的特定 xyz 位置上悔改错误,并且错误 A 发生在上午 10 点,错误 B 发生在下午 12 点,错误 C 发生在下午 3 点,我想在其中绘制点在动画中排序。
此外,如果可能的话,我想制作一个带有滚动条的 GUI,这样我就可以滚动时间或向后滚动,从而在我前进到时间时添加点,或者在我回到时间时删除点。或至少一个暂停分散过程的选项。
注意:散点图将有大约 2000-3000 个点……我不知道这是否会有所作为。我也是 MATLAB 的新手 :-)
非常感谢您的帮助和时间!亲切的问候
阿尔弗雷多
%Scatterplot data
x = [ 50 55 200 210 350 360 400 450 550 560 600 670 750 850 860];
y = [ 50 -50 100 -100 150 -150 151 -151 150 -150 152 -152 150 -150 150];
z = [ 120 120 100 300 100 300 100 300 100 300 100 300 100 300 100];
% alocates space for the z data by creating a matrix array of all ones
g = [0*ones(3,1);1*ones(3,1); 2*ones(3,1); 3*ones(3,1); 4*ones(3,1); ];
%set specific RGB color value for positions 0-4 and background color
color = [0 0 0; 1 0 0; 0 0 1; 1 1 0; 0 1 0]
whitebg([ 0.6758 0.8438 0.8984]) % light blue background
% gscatter creates a 2D matrix with the values from x and y
% and creates groups acording to the 'g' matrix size
% h = gscatter captures output argument and returns an array of handles to the lines on the graph)
h = gscatter(x, y, g, color)
%% for each unique group in 'g', set the ZData property appropriately
gu = unique(g);
for k = 1:numel(gu)
set(h(k), 'ZData', z( g == gu(k) ));
end
%set the aspect ratio, grid lines, and Legend names for the 3D figure
daspect([4.5 5 5])
grid on
legend('Position 0','Position 1','Position 2','Position 3','Position 4')
% view a 3D grapgh (for 2D set to "2")
view(3)