How to display a matrix in the Matplotlib annotations
Solution 1:
MatPlotLib uses its own typesetting framework (MathText). Your system's LaTeX rendering can be enabled by, rcParams['text.usetex'] = True
.
The other problem that you have is a double-quoted multi-line string. This isn't really allowed without using a \
, and that is difficult to manage with your existing \\
.
Try this:
from matplotlib import rcParams
rcParams['text.usetex'] = True
ax.annotate(
r"$ \begin{array}{ccc} a & b & c \\ d & e & f \\ g & h & i \end{array} $",
(0.25, 0.25),
textcoords='axes fraction', size=20)
Here I have used the array
environment, rather than matrix
because I don't think the latter is a LaTeX built-in. If you really want matrix
--or other amsmath items--you can add the amsmath package to the MatPlotLib LaTeX preamble:
rcParams['text.latex.preamble'] = r'\usepackage{amsmath}'
Then the matrix
environment will work,
ax.annotate(
r"$ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} $",
(0.25, 0.25),
textcoords='axes fraction', size=20)