plot in logarithmic scale

조회 수: 30 (최근 30일)
ELISABETTA BILLOTTA
ELISABETTA BILLOTTA 2022년 1월 12일
댓글: Star Strider 2022년 1월 12일
can someone tell me how in a 3d graph I can plot linearly the X and Y axis, while the Z axis (ZZ in this case) to plot it in logarithmic scale?
the command I use is contourf(XX,YY,ZZ,900,'linecolor','none').
thankss

채택된 답변

Star Strider
Star Strider 2022년 1월 12일
The contourf function plots a plane, not a surface.
To plot logarithmic contours of the ‘Z’ matrix, it will be necessary to calculate the logarithm of the matrix.
Z = randn(10) % Create Matrix
Z = 10×10
0.3046 -1.9056 -0.6347 -0.6783 0.1703 0.7342 0.4539 0.0859 0.9641 0.7408 -1.3748 -0.7479 0.9053 -1.4477 0.5652 -1.8302 0.2079 -0.4906 -1.0571 1.4710 -1.2717 -1.3417 -0.1471 0.9980 0.7213 -0.1074 -2.5673 1.4666 -0.0245 0.7185 1.6482 -0.7584 -0.2463 0.0507 -0.8587 -1.6823 -0.1376 1.7483 -0.7345 -0.3289 0.5851 0.8130 0.1395 0.1867 -1.4069 0.4896 1.4678 -0.0682 -2.6445 1.3236 1.7016 -0.7192 0.0310 -0.6274 -0.4594 -0.7578 -0.0915 0.4802 1.0584 -0.2711 0.0377 0.7731 -0.6610 -1.5448 -1.4279 -0.0605 -0.5192 0.4518 -2.2159 -0.5416 -0.1186 -0.6605 -0.4166 -0.9430 2.7231 1.0224 -0.0210 0.2174 -0.1919 -0.2458 -0.8351 -0.4570 0.2475 -0.4197 0.9497 1.2172 0.6185 1.3550 0.5498 -0.1129 0.2521 1.3799 -0.2456 -0.8516 -0.2364 -0.6204 -0.5317 -0.3331 -0.4287 1.7901
figure
contourf(Z)
colormap(turbo(10))
colorbar
title('$Original\ Z$', 'Interpreter','latex')
figure
contourf(log(abs(Z))) % Logarithms Of The Absolute Values
colormap(turbo(10))
colorbar
title('$log(|Z|)$', 'Interpreter','latex')
Zs = Z;
Zs(Zs<=0) = NaN; % 'NaN' Values Do Not Plot, log(NaN)= NaN
figure
contourf(Zs)
colormap(turbo(10))
colorbar
title('$log(Z > 0)$', 'Interpreter','latex')
.
  댓글 수: 2
ELISABETTA BILLOTTA
ELISABETTA BILLOTTA 2022년 1월 12일
in this way I plot only the Z .. I also have to plot the X and the Y in a linear way and inserted in the right point of the Cartesian plane..so it doesn't work
Star Strider
Star Strider 2022년 1월 12일
I can probably make it work if I have your data and the relevant part of the code.
Using synthetic data —
x = 0:9;
y = 4:13;
z = randn(10);
figure
contourf(x, y, log(abs(z)))
colormap(turbo(10))
colorbar
So it definitely can work with linear ‘x’ and ‘y’ vectors (or matrices created from them using ndgrid or meshgrid).
.

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

추가 답변 (1개)

Simon Chan
Simon Chan 2022년 1월 12일
I think you may need to use function contour3.
Then you can set the Z-axis scale to log by
set(gca,'ZScale','log')
  댓글 수: 1
ELISABETTA BILLOTTA
ELISABETTA BILLOTTA 2022년 1월 12일
with contour3 the graph I need is not displayed

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

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by