2015-05-16 3 views
0

Я пытаюсь сделать таблицу с заголовком в Python с помощью LaTeX.Использование LaTeX в matplotlib

Следующий код создает фигуру с заголовком, так как я хочу, чтобы заголовок был.

import matplotlib.pyplot as plt 

s1="a_b_c" 
s2=r'''\begin{tabular}{ c | c | c } & 1 & 2 \\\hline 1 & 1 & 2 \\\hline 2 & 2 & 4 \end{tabular}''' 

plt.figure(figsize=(4,5)) 
ax=plt.subplot2grid((1,1),(0,0)) 

ax.text(0.5,0.8,s1,ha="center",va="center",transform=ax.transAxes) 

plt.show() 

right title

Но теперь я добавить две строки в верхний код, который делает название неправильно.

import matplotlib.pyplot as plt 

s1="a_b_c" 
s2=r'''\begin{tabular}{ c | c | c } & 1 & 2 \\\hline 1 & 1 & 2 \\\hline 2 & 2 & 4 \end{tabular}''' 

plt.figure(figsize=(4,5)) 
ax=plt.subplot2grid((1,1),(0,0)) 

ax.text(0.5,0.8,s1,ha="center",va="center",transform=ax.transAxes) 

### 
plt.rc('text', usetex=True) 
ax.text(0.3,0.2,s2,ha="left",va="bottom",transform=ax.transAxes,size=20) 
### 

plt.show() 

enter image description here

Что я могу сделать, чтобы использовать LaTeX шрифты и обычные шрифты питона в то же время? Конечно, без изменения строк s1 и s2.

ответ

3

Все, что вам нужно сделать, это добавить несколько строк в файл:

import matplotlib.pyplot as plt 

plt.rc('text', usetex=True) 
plt.rc('font', family='serif') 

А у вас есть LaTeX шрифты!

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

a_{b_c} 

Или б и будет на том же уровне.

+0

Я пробовал это, и он по-прежнему выглядит как вторая фигура, которую я разместил. Моя проблема - это «a» с подчеркиванием «bc», я хочу, чтобы это было просто «a_b_c», как на первом рисунке – Andy

+0

О, ha, извините, я неправильно понял. Тогда это ваш LaTeX, это неправильно - вам нужно сделать a_ {b_c}, и все должно быть хорошо. Я отредактирую свой ответ. – mprat

+0

На самом деле, я надеялся сделать это без изменения строки ... нет другого пути? – Andy

Смежные вопросы