Plotting a surface from a timetable
5 views (last 30 days)
Show older comments
I've developed a timetable (attached), and I want to make a surface plot from it. I want "Start Time" and "Distance [km]" to be my x and y axes, with "Flow Rate [veh/hr]" as the corresponding output on the z axis. I've tried using plot3, but I'm getting a jumbled mess instead of a smooth surface.
0 Comments
Accepted Answer
Voss
on 16 Feb 2024
Here's one way:
load data
X = Lane1Data.("Start Time");
Y = Lane1Data.("Distance [km]");
Z = Lane1Data.("Flow Rate [veh/hr]");
I = scatteredInterpolant(hours(X-min(X)),Y,Z);
X_plot = linspace(min(X),max(X),50);
Y_plot = linspace(min(Y),max(Y),50);
[XX,YY] = meshgrid(hours(X_plot-min(X_plot)),Y_plot);
Z_plot = I(XX,YY);
surf(X_plot,Y_plot,Z_plot)
More Answers (1)
Fangjun Jiang
on 16 Feb 2024
Edited: Fangjun Jiang
on 16 Feb 2024
when you use plot() or plot3(), the plot connects the data points from the first to the second, till the last. Sometimes this causes bad visual effect.
What you need might be scatter3(), or use plot3(x,y,z,'.') which means just show the data points but not to connect the data points.
0 Comments
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!