Plotting a surface from a timetable
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Voss
2024-2-16
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)
更多回答(1 个)
Fangjun Jiang
2024-2-16
编辑:Fangjun Jiang
2024-2-16
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!