Julia 3D bề mặt âm mưu như Matlab, bản đồ màu theo thang log
Aug 16 2020
Tôi đang cố gắng vẽ sơ đồ bề mặt 3D như hình bên dưới (nguồn: Wikipedia ):

Đây là nỗ lực của tôi trong julia
;
x = [-2:0.05:2;]
y = [-1:0.05:3;]
z = (1 .-x').^2 .+ 100 .*(y.-x'.^2).^2
minZ = minimum(z[:]);
maxZ = maximum(z[:]);
c = minZ .+ (maxZ-minZ).*log.(1 .+z .- minZ) ./ log(1+maxZ-minZ)
Plots.plot(x,y,z,st=:surface,color=cgrad(:jet,c),
xlabel = "x",ylabel="y",zlabel="f(x,y)")

Đây là những câu hỏi của tôi:
- Làm thế nào tôi có thể nhận được bản đồ màu của lô julia xuất hiện giống như Matlab, ngay cả quy mô nhật ký cũng không hoạt động.
- View (camera) cho Matlab plot Azimuth and Elevation là (-30,30) trong khi tùy chọn camera julia plot hoàn toàn không hoạt động.
camera = (-30,30)
. Giá trị âm dường như không hoạt động trongcamera
tùy chọn. Làm cách nào để tôi có thể làm cho khung nhìn (tùy chọn x và y) xuất hiện tương tự như matlab.
Để tham khảo codel Matlab:
clear all;
close all;
hfig = figure(1);
s = 0.05;
X = [-2 : s : 2+s];
Y = [-1 : s : 3+s];
[X, Y] = meshgrid(X, Y);
Z = (1-X).^2 + 100*(Y-X.^2).^2;
% Use log scale of Z for a batter usage of the color spectrum
minZ = min(Z(:));
maxZ = max(Z(:));
C = minZ + (maxZ-minZ).*log(1+Z-minZ)./log(1+maxZ-minZ);
colormap(jet);
surf(X, Y, Z, C, 'EdgeColor', 'none', 'LineStyle', 'none');
axis([-2, 2, -1, 3, 0, 2500]);
xlabel('x', 'fontsize', 18);
ylabel('y', 'fontsize', 18);
zlabel('f', 'fontsize', 18);
Cảm ơn bạn
Trả lời
1 PrzemyslawSzufel Aug 16 2020 at 01:36
Có lẽ điều này sẽ hữu ích?
pyplot()
Plots.plot(x,y,z,st=:surface,color=Colors.diverging_palette(20,300,40, logscale=true, wcolor=colorant"red",dcolor1=colorant"green", dcolor2=colorant"red", b=0.1,d1=1.0,d2=1.0),
xlabel = "x",ylabel="y",zlabel="f(x,y)",camera=(-30,30))
