如何在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
相关产品推荐
相关产品推荐

