# How can I get 3D continuous plot of real time data ?

61 views (last 30 days)
Aradhya Anil Tare on 8 Jan 2020
Commented: Aradhya Anil Tare on 11 Jan 2020
Hey, I'm working on MPU 9250. I want to plot real time data of MPU in 3D, I'm able to plot real data in 3D, the plot contained all the data from first reading to the last but I want to plot the first reading then the second reading and so on. I'm not able to plot the data. Please help me.
Regards,
##### 2 CommentsShowHide 1 older comment
Aradhya Anil Tare on 9 Jan 2020
%%for reading the data the data is already stored in the folder
%% Conversion from table to array
accel = table2array(accel_tab);
gyro = table2array(gyro_tab);
mag = table2array(mag_tab);
%% for plotting
%x-accel contains all the x coordinates of acceleration
for i = 1:1000-1
plot3( x_accel(i), y_accel(i), z_accel(i))
end
is the code is right ?

Geoff Hayes on 10 Jan 2020
Edited: Geoff Hayes on 10 Jan 2020
Aradhya - everytime you call plot3 you are creating a new plot (graphics) object and the previous one is deleted. Perhaps that is why you are not seeing all of the data being plotted (if I understand your question correctly). Rather than using a loop to plot the data, just do it all at once
plot3( x_accel(1:999), y_accel(1:999), z_accel(1:999))
Else if you want to plot each point (with perhaps a pause between each one), then you will want to create one plot object and update that on each iteration of your loop
hPlot = plot3(x_accel(1), y_accel(1), z_accel(1));
for k = 2:1000-1
pause(0.5);
xdata = [get(hPlot, 'XData') ; x_accel(k)];
ydata = [get(hPlot, 'YData') ; y_accel(k)];
zdata = [get(hPlot, 'ZData') ; z_accel(k)];
set(hPlot, 'XData', xdata, 'YData', ydata, 'ZData', zdata);
end
I haven't tested the above, but it should work something like that.
Aradhya Anil Tare on 11 Jan 2020
It Worked, thank you so much. :)

Selva Karna on 9 Jan 2020
plot3d(x,y,z,'-or');

R2018b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!