You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Jupyter Notebook中显示Julia Makie输出?

解决Jupyter中Julia GLMakie图形无法在Python单元格显示的问题

问题原因

GLMakie默认使用桌面窗口渲染后端,在Jupyter Notebook环境中无法直接弹出窗口;且PyCall返回的包装对象不会自动触发图形渲染逻辑,导致仅显示<PyCall.jlwrap Scene ...>的文本信息。

可行解决办法

方案1:切换为WGLMakie后端(推荐,适配Web/Jupyter场景)

WGLMakie是Makie专为Web和Notebook设计的后端,可直接在Jupyter内渲染图形。

修改Julia单元格代码:

using WGLMakie 

function plot_something()
    odeSol(x,y) = Point(-x, 2y)             # x'(t) = -x, y'(t) = 2y
    fig = Figure(resolution =(400,400))
    ax = Axis(fig)
    streamplot!(ax, odeSol, -2..2, -2..2, colormap = :plasma, 
        gridsize= (32,32), arrow_size = 0.07)
    fig[1,1] = ax
    fig
end

Python单元格调用并显示:

from julia import Main
# 获取图形对象并直接返回,Jupyter会自动渲染
Main.plot_something()

方案2:启用GLMakie的Inline模式

若坚持使用GLMakie,可通过启用inline模式让图形在Notebook内显示:

修改Julia单元格代码:

using GLMakie
# 启用inline渲染模式,适配Jupyter环境
GLMakie.activate!(inline=true)

function plot_something()
    odeSol(x,y) = Point(-x, 2y)             # x'(t) = -x, y'(t) = 2y
    fig = Figure(resolution =(400,400))
    ax = Axis(fig)
    streamplot!(ax, odeSol, -2..2, -2..2, colormap = :plasma, 
        gridsize= (32,32), arrow_size = 0.07)
    fig[1,1] = ax
    fig
end

Python单元格调用:

from julia import Main
# 返回图形对象触发渲染
Main.plot_something()

方案3:在Python端主动调用Makie的display方法

若上述方案未生效,可在Python单元格中主动触发图形渲染:

from julia import Main, Makie
fig = Main.plot_something()
# 主动调用Makie的display函数显示图形
Makie.display(fig)

内容的提问来源于stack exchange,提问作者ea42_gh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:18:18