Символьная математика Python Spyder Display

В Spyder 2 (дистрибутив Anaconda) и в консоли IPython QT я могу распечатать результаты символьных вычислений (из ответа, который я получил на предыдущий пост), но я не могу получить уравнения в строках для печати с a Расширенная система отображения IPython:

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.

Спасибо!


person mbird    schedule 14.06.2014    source источник


Ответы (2)


Класс Math не генерирует визуализированное изображение из вашего латекса, поэтому он не работает напрямую.

Чтобы получить то, что вы хотите, вам нужно использовать этот код

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))

Тогда вы увидите правильное изображение

person Carlos Cordoba    schedule 24.06.2014
comment
Извините, это означает, что у вас не установлен Latex. Но не волнуйтесь, для этого вам понадобится либо Latex, либо matplotlib. Чтобы все работало с последним, просто удалите ключевое слово backend. Я собираюсь обновить вопрос, чтобы отразить его (просто обратите внимание на строку data = ...) - person Carlos Cordoba; 27.06.2014
comment
Хорошо, тогда я сделаю финальное обновление :) Не могли бы вы отметить его как ответ, нажав на зеленую галочку после него? Я также собираюсь отправить ребятам из IPython запрос на извлечение, чтобы это работало так, как оно работает в блокноте, то есть просто используя Math(...). - person Carlos Cordoba; 27.06.2014

Привет, ребята, у меня все еще есть проблема, когда я использую

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

также я попробовал помеченный ответ, но latex_to_png создает объект NoneType на spyder

person Miguel Núñez Ochoa    schedule 31.07.2018
comment
(сопровождающий Spyder здесь) Пожалуйста, создайте вопрос об этом в нашем отслеживании проблем и удалите его как ответ, потому что это не совсем ответ. Также обратите внимание, что для этого в вашей системе должен быть установлен Latex. - person Carlos Cordoba; 01.08.2018