Trying to plot 4D data

조회 수: 16 (최근 30일)
Amin KLS
Amin KLS 2022년 4월 7일
댓글: Amin KLS 2022년 4월 8일
I'm trying to plot my data as a 4D figure like attached image, but I don’t know which command should be used.
I would be grateful if someone could help me with this, thank you.
x=[1;2;3;4;5;6]
y=[20;40;60;80;100;120]
z=[7.5 6.4 5.4 4.7 4.6 7.3
8 7 6.3 5.9 6.2 9.3
7.6 6.9 7.6 10.6 17.8 38.8
8.9 9 10.8 15.1 24.6 52.2
9.9 10.4 12.5 17.2 27.4 57.6
11.8 12.9 15.6 21 32.6 67.2
]
u=[1.166095944 0.97358166 0.779831701 0.585208118 0.390139923 0.194918905
1.125081616 0.938075367 0.750416267 0.56248955 0.374665613 0.187071512
1.299656109 1.085162773 0.869349505 0.6528042 0.435361439 0.217700286
1.33599592 1.114982352 0.893254036 0.670663527 0.447356191 0.223576511
1.353130634 1.129064616 0.904218619 0.678721998 0.452633899 0.226149653
1.383264964 1.153932529 0.923799929 0.693105559 0.462123411 0.230823789
]

채택된 답변

Voss
Voss 2022년 4월 8일
In the sample image, it looks like Z = U, i.e., the color of the surface corresponds to a U-value which is equal to the Z-value of the surface. That's not the case here, since here the variable z is not equal to the variable u.
Nevertheless, you can create a surface that uses x, y, and z as its spatial coordinates and u as its color.
x=[1;2;3;4;5;6];
y=[20;40;60;80;100;120];
z=[7.5 6.4 5.4 4.7 4.6 7.3
8 7 6.3 5.9 6.2 9.3
7.6 6.9 7.6 10.6 17.8 38.8
8.9 9 10.8 15.1 24.6 52.2
9.9 10.4 12.5 17.2 27.4 57.6
11.8 12.9 15.6 21 32.6 67.2
];
u=[1.166095944 0.97358166 0.779831701 0.585208118 0.390139923 0.194918905
1.125081616 0.938075367 0.750416267 0.56248955 0.374665613 0.187071512
1.299656109 1.085162773 0.869349505 0.6528042 0.435361439 0.217700286
1.33599592 1.114982352 0.893254036 0.670663527 0.447356191 0.223576511
1.353130634 1.129064616 0.904218619 0.678721998 0.452633899 0.226149653
1.383264964 1.153932529 0.923799929 0.693105559 0.462123411 0.230823789
];
% hard to say which one of these four is the correct way to depict
% these data:
surf(x,y,z,u);
% surf(x,y,z.',u.');
% surf(x,y,z.',u);
% surf(x,y,z,u.');
cb = colorbar();
xlabel('X')
ylabel('Y')
zlabel('Z')
ylabel(cb,'U','Rotation',0);
  댓글 수: 1
Amin KLS
Amin KLS 2022년 4월 8일
It's exactly what I needed, thank you for your assistance.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Lighting, Transparency, and Shading에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by