【问题标题】:Python Spyder Display Symbolic MathPython Spyder 显示符号数学
【发布时间】:2014-08-05 02:20:52
【问题描述】:

在 Spyder 2(Anaconda 发行版)和 IPython QT 控制台中,我能够打印符号计算的结果(来自我在上一篇文章中得到的答案),但我无法使用字符串中的方程式打印a IPython's Rich Display System:

from sympy import *
from IPython.display import display, Math

init_printing(use_unicode=False, wrap_line=False, no_global=True)

x, y, z = symbols('x y z')

#----- prints correctly
ii = integrate(x**2 + x + 1, x) 
display(ii)

#----- does not print
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')

上面正确打印了积分的结果,但 Math() 没有打印(没有错误——只是跳过它)。请注意,这一切都适用于 SciPy 网络笔记本。

谢谢!

【问题讨论】:

    标签: python ipython symbolic-math spyder


    【解决方案1】:

    Math 类不会从您的 Latex 生成渲染图像,这就是它不能直接工作的原因。

    要得到你想要的,你需要使用这个代码

    from IPython.display import Image, display
    from IPython.lib.latextools import latex_to_png
    
    eq = r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'
    data = latex_to_png(eq, wrap=True)
    display(Image(data=data))
    

    然后你会看到正确的图像

    【讨论】:

    • 对不起,这意味着您没有安装 Latex。但别担心,要让它工作,你需要 Latex 或 matplotlib。要使最后一个工作正常,只需删除 backend 关键字。我将更新问题以反映它(只需注意data = ... 行)
    • 好的,我会做最后的更新 :) 你能通过点击后面的绿色复选标志将它标记为已回答吗?我还将向 IPython 人员发送一个拉取请求,以使其在笔记本中正常工作,即仅使用 Math(...)
    【解决方案2】:

    大家好,我使用的时候还是有问题

    from IPython.display import display, Math, Latex
    display((Math(r'P(Purchase|Male)= \frac{Numero\ total\ de\ compras\ hechas\ por\ hombres\}{Total\ de\ hombres\ en\ el\ grupo\} = \frac{Purchase\cap Male}{Male}')))
    

    在 jupyter 上它工作正常,但是当我在 spyder 上执行完全相同的代码时它不起作用

    我使用 python 3.6,spyder 3.3.3

    我也尝试了标记的 asnwer,但 latex_to_png 在 spyder 上创建了一个 NoneType 对象

    【讨论】:

    • 此处是 Spyder 维护者)请在我们的issues tracker 中打开一个关于此的问题,并在此处将其作为答案删除,因为它不是真正的答案。另外,请注意,您需要在系统中安装 Latex 才能正常工作。
    猜你喜欢
    • 2015-04-03
    • 1970-01-01
    • 2021-08-16
    • 2021-09-25
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多