【问题标题】:Julia PyPlot: plot 3D surface with as face colors the norm of surface gradientJulia PyPlot:绘制 3D 表面,表面颜色为表面梯度的范数
【发布时间】:2016-04-28 20:59:11
【问题描述】:

有谁知道如何使用 Julia 的 Pyplot 绘制 3D 表面,例如 将表面渐变作为面部颜色?

与 Python 的此主题类似:Color matplotlib plot_surface command with surface gradient

【问题讨论】:

    标签: matplotlib julia plots.jl


    【解决方案1】:

    我看到了这个,我只需要让它工作。 Plots.jl 使用 PyPlot 后端几乎支持开箱即用。我只需要换掉一个自定义的 matplotlib 着色器来应用不同的 z 矩阵。

    您会注意到我正在访问 numpy 的渐变函数(通过 PyCall 导入),并且我正在包装渐变矩阵 G,这样它就不会被分割成列。总而言之……比python例子简单多了!

        using Plots; pyplot();
        x = y = LinRange(-5.0, 5.0, 30)
        z = sin(sqrt(Float64[xi^2+yi^2 for xi = x, yi = y]))
        surface(x, y, z, alpha = 0.7)
    

        using PyCall
        Gx, Gy = Plots.pynb.pymember(:gradient)(z)
        surface(x, y, z, alpha = 0.8, zcolor = wrap(G))
    

    【讨论】:

    • 我喜欢 Plots.jl 中简洁的语法。 stevengj 在 PyPlot github.com/JuliaLang/IJulia.jl/issues/… 中提出以下建议
    • 您将如何使用 Julia v1.5 在 Plots.jl 中执行此操作?
    • @Tom Breloff:如果您将语法更新为Julia 1.6,将不胜感激,因为它不再运行。这是该主题的排名最高的问题/答案。非常感谢!
    • 我可以使用surface(x, y, abs.(z), alpha = 0.7) 运行第一部分,摆脱复杂的部分。
    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 2018-06-12
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    相关资源
    最近更新 更多