जूलिया 3 डी सतह प्लॉट जैसे कि मैटलैब, लॉग स्केल में कॉलोरामैप
मैं नीचे की आकृति की तरह 3 डी सतह प्लॉट की कोशिश कर रहा हूं (स्रोत: विकिपीडिया ):
इसमें मेरा प्रयास है 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)")
यहाँ मेरे सवाल हैं:
- मैं मटलब की तरह जूलिया प्लॉट का रंगीन नक्शा कैसे प्राप्त कर सकता हूं, यहां तक कि लॉग स्केल भी काम नहीं करता है।
- मतलाब प्लॉट के लिए दृश्य (कैमरा) अज़ीमुथ और ऊंचाई (-30,30) है, जबकि जूलिया प्लॉट कैमरा विकल्प बिल्कुल भी काम नहीं करता है।
camera = (-30,30)
। नकारात्मक मानcamera
विकल्प में काम नहीं करते हैं । मैं कैसे दृश्य (x और y विकल्प) को 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);
धन्यवाद
जवाब
1 PrzemyslawSzufel
शायद यह उपयोगी होगा?
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))