在matplotlib图中渲染Pandas 'to_latex'方法的输出

4 投票
1 回答
1812 浏览
提问于 2025-04-17 16:52

Python的Pandas库中的DataFrame有一个叫做to_latex的方法:

import pandas as pd
from numpy import arange

a = pd.DataFrame(arange(4))
a.to_latex()

输出结果:

'\begin{tabular}{|l|c|c|}\n\hline\n{} & 0 \\\n\hline\n0 & 0 \\\n1 & 1 \\\n2 & 2 \\\n3 & 3 \\\n\hline\n\end{tabular}\n'

我想把这个表格叠加到一个matplotlib的图上:

import pylab as plt
import matplotlib as mpl

mpl.rc('text', usetex=True)
plt.figure()
ax=plt.gca()

plt.text(9,3.4,a.to_latex(),size=12)
plt.plot(y)
plt.show()

但是,我遇到了这个错误:

RuntimeError: LaTeX无法处理以下字符串: '\begin{tabular}{|l|c|c|}'

我的问题是:

如何在matplotlib图中显示Pandas的'to_latex'方法的输出结果?

1 个回答

7

问题在于,matplotlib 对多行的 latex 字符串处理得不好。解决这个问题的一种方法是把 latex 字符串中的换行符替换成空格。也就是说,可以这样做:

ltx = a.to_latex().replace('\n', ' ')
plt.text(9, 3.4, ltx, size=12)

撰写回答