Plot 同时绘制等高线和三维图

Plot 同时绘制等高线和三维图,plot,julia,contour,Plot,Julia,Contour,我试图在Julia中同时绘制一个函数的等高线和曲面,但我似乎找不到一种方法 有没有一种简单的方法可以实现这一点?下面是我为绘图设计的一个示例。PyPlot软件包有更好的功能,可以通过Makie实现: import Contour: contours, levels, level, lines, coordinates function surface_contour(xs, ys, f; offset=0) p = surface(xs, ys, f, legend=false, fill

我试图在Julia中同时绘制一个函数的等高线和曲面,但我似乎找不到一种方法


有没有一种简单的方法可以实现这一点?

下面是我为
绘图设计的一个示例。
PyPlot
软件包有更好的功能,可以通过Makie实现:

import Contour: contours, levels, level, lines, coordinates

function surface_contour(xs, ys, f; offset=0)
  p = surface(xs, ys, f, legend=false, fillalpha=0.5)

  ## we add to the graphic p, then plot
  zs = [f(x,y) for x in xs, y in ys]  # reverse order for use with Contour package
  for cl in levels(contours(xs, ys, zs))
    lvl = level(cl) # the z-value of this contour level
    for line in lines(cl)
        _xs, _ys = coordinates(line) # coordinates of this line segment
        _zs = offset .+ 0 .* _xs
        plot!(p, _xs, _ys, _zs, alpha=0.5)        # add curve on x-y plane
    end
  end
  p
end

xs = ys = range(-pi, stop=pi, length=100)
f(x,y) = 2 + sin(x) - cos(y)

surface_contour(xs, ys, f)

谢谢,这是可行的:)但是,等高线与曲面图重叠,曲面图有没有办法成为顶层?我在函数结束前通过绘制曲面图解决了这个问题,这样,曲面打印将成为顶层。
offset
参数允许您移动绘制轮廓的z级。但是我希望你能对这个问题有一个更好的答案,因为我从来没有这么满意过这个需要手动调整偏移量。