書けないわけではない。
単純に、
import matplotlib.pyplot as plt
a= ur"$\begin{array}{ccc}a&a&a\\b&b&b\\c&c&c\end{array}$"
plt.text(0.5,0.5,a)
plt.show()
が
\begin{array}{ccc}a&a&a&\\b\b\b\\c\c\c\end{array}
^Unknown symbol: \begin
で止まる場合は、matplotlibが独自に使っているタイプセットに、その機能がついていないだけなので、自分のLaTeXシステムを使えば解決する。もちろん、自前でLaTeX環境は用意しなければならない。このサイトにも、自分が四苦八苦した記録が残っているかもしれない。(TeXLiveをISOでDLし、インストールする事をお勧めする。数百MBのダウンローダよりも、数GBのISOをDLした方が、トータルでかかる時間が絶対すくない。 )
解決策
from matplotlib import rcParams
rcParams['text.usetex'] = True
を実行するだけで、できる(ここを参考にした)。
そもそも、文字列が作れていない
SyntaxError: (unicode error) 'rawunicodeescape' codec can't decode bytes in position : truncated \uXXXX
‘rawunicodeescape’コーデックは、\u〜〜〜〜って書いてある部分をデコード出来ない。
ur””とか、すでにいろいろつまづいて、工夫した人だと思いますが、
その工夫をした後、\uがあったら、pythonが読んでくれない事に、気を付けないといけない。
r"\usepackage{hoge}"+"\begin{..."
と、別々の文字列を、+で連結する形にしたら、エラーでなくなった。
\usepackage{amsmath}とか、入れてませんか?
入れるところ、ここじゃありませんよ。(後述するが、rcParamsから入れる。)
関連して日本語の空白も。
a= ur"$\begin{array}{ccc} a&a&a\\b&b&b\\c&c&c\end{array}$"
って、全角スペースを入れると、
UnicodeEncodeError: 'ascii' codec can't encode character u'\u3000' in position
ってエラーが返ってくる。\u3000’って、全角スペースですよ。
\uだから、だめらしい。
行列の書き方が間違っている
a&a&a&最後の&が余計
a= ur"$\begin{array}{ccc} a&a&a&\\b&b&b&\\c&c&c&\end{array}$"
! Extra alignment tab has been changed to \cr.
! LaTeX Error: Can be used only in preamble.
ここを参考にした。
\begin{document}
さっき間違えていた\usepackage{amsmath}がそれにあたる。
matplotlibでは、両方とも入れてはいけないらしい。
from matplotlib import rc
ParamsrcParams['text.usetex'] = True
rcParams['text.latex.preamble'] = r'\usepackage{amsmath}'
で入れるそうな。
$$\begin{array}{ccc}a&a&a\\b&b&b\\c&c&c\end{array}$$