Я пытался построить сферы, но бывают случаи, когда команда aspect_ratio=:equal
просто не работает, пример:
using Plots
function plotCC(pos, rad, n = 16) # Function to spheres
u = collect(range(0,stop=2,length=n));
v = collect(range(0,stop=1,length=n));
x = pos * ones(n) * ones(n)' + rad * cospi.(u) * sinpi.(v)';
y = rad * sinpi.(u) * sinpi.(v)';
z = rad * repeat(cospi.(v)',outer=[n, 1])
surface!(x,y,z, aspect_ratio=:equal)
end
plotlyjs(dpi=1500)
x = -15:0.1:10
y = -2:0.1:2
plot(x,y,(x,y) -> sin(x)*cos(y)*0.5, linetype=:surface, aspect_ratio=:equal, color=:magma)
plotCC(1,2,32)
plotCC(-15,3,32)
gui()
, который даст мне это:
но если я нарисую вторую сферу с rad = 5, то это результат:
Это какое-то ограничение Plots.jl? Похоже, он решает не делать aspect_ratio =: equal только потому, что данные слишком растянуты, но мне нужно построить их с одинаково масштабированной осью (иначе сферы не будут выглядеть так). Любой совет?