'How to render Latex markup using Python?

How to show an easy latex-formula in python? Maybe numpy is the right choice?

I have python code like:

a = '\frac{a}{b}'

and want to print this in a graphical output (like matplotlib).



Solution 1:[1]

As suggested by Andrew little work around using matplotlib.

import matplotlib.pyplot as plt
a = '\\frac{a}{b}'  #notice escaped slash
plt.plot()
plt.text(0.5, 0.5,'$%s$'%a)
plt.show()

Solution 2:[2]

An answer based on this one specific to Jupyter notebook, using f-string to format an $x_i$ variable:

from IPython.display import display, Latex
for i in range(3):
    display(Latex(f'$x_{i}$'))

Screenshot of the output

Note: The f-string (formatted string literal) uses curly braces to insert the value of the Python variable i. You’ll need to double the curly braces (f'{{}}') to actually use {} in the LaTeX code. Otherwise, you can use single curly braces directly in a normal Python string (not an f-string).

Side Note: I'm surprised Stack Overflow still doesn’t have a math markup.

Solution 3:[3]

Creating mathematical formulas in Pandas.

a = r'\frac{a}{b}'
ax = plt.axes([0,0,0.3,0.3]) #left,bottom,width,height
ax.set_xticks([])
ax.set_yticks([])
ax.axis('off')
plt.text(0.4,0.4,'$%s$' %a,size=50,color="green")

enter image description here

a = r'f(x) = \frac{\exp(-x^2/2)}{\sqrt{2*\pi}}'
ax = plt.axes([0,0,0.3,0.3]) #left,bottom,width,height
ax.set_xticks([])
ax.set_yticks([])
ax.axis('off')
plt.text(0.4,0.4,'$%s$' %a,size=50,color="green")

enter image description here

Solution 4:[4]

Matplotlib can already do TeX, by setting text.usetex: True in ~/.matplotlib/matplotlibrc. Then, you can just use TeX in all displayed strings, e.g.,

ylabel(r"Temperature (K) [fixed $\beta=2$]")

(be sure to use the $ as in normal in-line TeX!). The r before the string means that no substitutions are made; otherwise you have to escape the slashes as mentioned.

More info at the matplotlib site.

Solution 5:[5]

Without ticks:

a = r'\frac{a}{b}'
ax = plt.axes([0,0,0.1,0.2]) #left,bottom,width,height
ax.set_xticks([])
ax.set_yticks([])
plt.text(0.3,0.4,'$%s$' %a,size=40)

Solution 6:[6]

Draw with matplotlib,

import matplotlib.pyplot as plt
a = r'\frac{a}{b}'
ax=plt.subplot(111)
ax.text(0.5,0.5,r"$%s$" %(a),fontsize=30,color="green")
plt.show()

enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ostrokach
Solution 2 ib.
Solution 3 Wojciech Moszczy?ski
Solution 4
Solution 5 restrepo
Solution 6 LF00