How to create 3d figures as follows
조회 수: 2 (최근 30일)
이전 댓글 표시
I can lively modify my 3d plots on plots editor, but I want to modify on Editor by codes.
Suppose that we have two figures p1 and p2 as follows:
close all;
clc;
clear all;
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
p1 = surf(X,Y,Z);
hold on
p2 = surf(X,Y,Z);
I want to achive followings:
-p1 should be red sphere and markersize=12.
-p2 should be turquoise color and linestyle=none.
-axes gridlinestyle should be '-.' and axes gridline color=blue.
-Can legends be placed in a specific coordinate like (x=2,y=5,z=8)?
Consequently, I want to get a figure similar to the following:
댓글 수: 0
채택된 답변
Cris LaPierre
2021년 3월 5일
편집: Cris LaPierre
2021년 3월 6일
Once you know the property names, it's just a matter of setting the desired value. It does seem your equation creates a different shape from the one you show in your image.
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
p1 = surf(X,Y,Z,"FaceColor","none",...
"Marker","o","MarkerEdgeColor","y",...
"MarkerFaceColor","r",'MarkerSize',12,...
"EdgeColor","none","DisplayName","data2");
hold on
p2 = surf(X,Y,Z,"FaceColor",[0.25 0.8750 0.8125],...
"EdgeColor","none","DisplayName","data1");
hold off
grid on % grid is on by default, so not necessary
ax=gca;
ax.GridColor='b';
ax.GridLineStyle = '-'; % this is the default, so not necessary
% first input uses suface objects to set order lines appear.
legend([p2,p1],"Location","north")
xlabel("x")
ylabel("t")
zlabel("v(x,t)")
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Specifying Target for Graphics Output에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!