2013-04-07 6 views
5

Когда я дать Matplotlib строку аннотации, такие какMatplotlib mathtext гидроразрыва слишком мал

'$\frac{A}{B} = C$' 

и я указать размер шрифта 18, А и В оказываются на 12,6 пт, в то время как С вынесено на 18 пт. Я хочу, чтобы A, B и C были одинаковыми. Как мне это сделать?

В LaTeX документе, если вы даете команд,

\begin{equation} 
\frac{A}{B} = C 
\end{equation} 

вы получаете часть, где A, B и C являются все же размера, но если вы делаете

$\frac{A}{B} = C$ 

в строке с текстом вы получаете A и B, отображаемые на 12.6 pt, а C - на 18 pt. Таким образом, математический контекст matplotlib эмулирует встроенный режим LaTeX. В LaTeX вы можете написать

$\displaystyle\frac{A}{B} = C$ 

, а затем A, B и C являются все же размера, даже в режиме инлайн. Я пробовал это в matplotlib, но mathtext не распознал команду \ displaystyle. = (

Есть ли способ заставить это работать в математическом тексте Matplotlib, или я застрял, изменяя text.usetex на true в моем файле .matplotlibrc? (Если возможно, я хотел бы остаться с mathtext, так как это много быстрее)

Моя установка:. Matplotlib v1.2.0 питона 2,7 OS X 10,8

+0

Возможно, посмотрите, есть ли какие-либо идеи в [Установка размера шрифта math] (http://tex.stackexchange.com/q/94232/5764), решает вашу проблему. – Werner

+0

@Werner Спасибо за ссылку, но я не нашел ничего, что сработало. Команды \ Large, \ Huge, \ small и т. Д. Работают только для текстового или уравнения. Они не работают в встроенном математическом режиме ($ ... $), который является единственным режимом для математического текста. Остальная часть обсуждения в ссылке, по-видимому, относится только к Matlab. Возможно, мне просто нужно спросить разработчиков matplotlib, если они могут реализовать \ displaystyle в mathtext. – Stretch

+0

Сделайте это, сообщите об этом и сообщите об этом сообществу. – Werner

ответ

1

Как вы сказали, вы можете исправить ее с помощью \ displaystyle:

$\displaystyle\frac{A}{B} = C$ 

для того, чтобы Llow Matplotlib использовать латекс для всех обработки текста вы должны определить в вашем matplotlibrc переменной text.usetex в True:

text.usetex   : True 

Я сделал небольшой пример, чтобы проверить его, и он работает хорошо:

import matplotlib.pyplot as plt 
plt.plot(range(200)) 
plt.text(100,50,r'$\displaystyle\frac{A}{B}=C$') 

Извините, но поскольку я новичок, я не могу размещать изображения.

+0

Спасибо за ваш комментарий. Как я упоминал в нижней части моего сообщения, я бы предпочел не использовать латекс для всей обработки текста. Это довольно медленно. Я хочу использовать математический текст. – Stretch

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