Matplotlib: изменить размер шрифта - программирование
Подтвердить что ты не робот

Matplotlib: изменить размер шрифта

Я делаю некоторые сюжеты с matplotlib, и у меня возникла проблема с рендерингом TeX. Похоже, что x-высота mathtext немного меньше, чем нормальный Bitstream Vera Sans. См. Следующий пример:

x = linspace(0, 30, 300);
y = 0.5*rand(300)+20/(numpy.power(x-15, 2)+4);
xlabel(r'$\omega$ (rad$\cdot$Hz)');
ylabel(r'Intensity$^2$');
title(r'Why is $mathtext$ so much smaller than normal text?');

Plot of some random data illustrating the issue.

Как вы можете видеть, это особенно заметно с греческими буквами и цифрами. В идеале я бы мог определить некоторый коэффициент масштабирования, который просто увеличил бы математический текст при каждом размере шрифта. Есть ли способ сделать это просто? Я не хочу просто использовать Computer Modern во всем мире. Я также не хочу компилировать новый шрифт Tex math, если это возможно.

Одним из решений, с которым я буду работать, является использование шрифтов sans-serif для греческих букв и цифр, но по какой-либо причине matplotlib игнорирует форматирование на них:

title('Why does $mat\mathsf{plot}lib$ ignore formatting for $\mathsf{2}$ ($\mathsf{two}), $\mathbf{2}$ ($\mathbf{two}) and $\mathsf{\omega}$?')

Title changed

Я предполагаю, что это имеет какое-то отношение к природе того, как эти вещи набираются, но есть ли способ исправить это?

4b9b3361

Ответ 1

Из документов matplotlib:

Кроме того, вы можете использовать \mathdefault{...} или его псевдоним \mathregular{...} использовать шрифт, используемый для обычного текста вне mathtext. Для этого подхода существует ряд ограничений. что намного меньше символов будет доступно, но оно может быть полезно чтобы математические выражения хорошо сочетались с другим текстом в сюжете.

Ответ 2

Попробуйте установить

rcParams['text.usetex'] = True

который попытается использовать внешнюю установку LaTeX, а не встроенный рендеринг mathtext. См. эту вики (хотя это немного устаревшая) и обсуждение вопрос № 1336

Другим вариантом, если вы нацеливаете LaTeX, является использование pstricks.