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

如何在Python脚本中显示Wolfram Mathematica生成的图表?

在Python中显示Wolfram Engine生成的图表

当然可行,下面给你两种实用方案,先纠正你代码里的一个小错误:你定义的变量是wl_comm,但调用wlexpr时用了wl_plot,这会导致变量未定义错误,先修正这个问题。

方案一:让Wolfram Engine直接弹出图表窗口

直接让Wolfram Engine执行绘图命令并弹出原生窗口显示,只需确保执行的表达式会触发渲染:

from wolframclient.evaluation import WolframLanguageSession
from wolframclient.language import wlexpr

session = WolframLanguageSession()
plot_file = open("plot.txt")
wl_comm = plot_file.read()
plot_file.close()

# 执行绘图命令,Wolfram会自动弹出窗口显示图表
session.evaluate(wlexpr(wl_comm))

# 等待用户关闭图表窗口后再终止会话
input("关闭图表窗口后按回车继续...")
session.terminate()

如果你的plot.txt里只是纯绘图表达式(比如Plot[Sin[x], {x, 0, 2Pi}]),直接执行就能弹出窗口;如果是赋值语句(比如p = Plot[Sin[x], {x,0,2Pi}]),那需要改成session.evaluate(wlexpr(f"Show[{wl_comm.split('=')[1].strip()}]"))来显式触发显示。

方案二:导出为图片后用Python显示

把Wolfram生成的图表导出为图片文件,再用Python的图像库加载显示,适合需要在Python界面中集成的场景:

from wolframclient.evaluation import WolframLanguageSession
from wolframclient.language import wlexpr
from PIL import Image

session = WolframLanguageSession()
plot_file = open("plot.txt")
wl_comm = plot_file.read()
plot_file.close()

# 导出图表为PNG文件
session.evaluate(wlexpr(f"Export['temp_plot.png', {wl_comm}]"))

# 用PIL打开并显示图片
img = Image.open("temp_plot.png")
img.show()

session.terminate()

你也可以用matplotlib替代PIL,把显示部分换成:

import matplotlib.pyplot as plt

plt.imshow(img)
plt.axis('off')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:56:20