繁体   English   中英

Matplotlib:更改数学字体大小

[英]Matplotlib: Change math font size

我正在用matplotlib制作一些图,我遇到了TeX渲染的问题。 似乎mathtext x-height比正常的比特流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?');

描述该问题的一些随机数据的图。

正如您所看到的,希腊字母和数字尤其引人注目。 理想情况下,我可以定义一些缩放因子,只会使每个字体大小的数学文本更大一些。 有什么方法可以做到这一点吗? 不想简单地使用计算机现代无处不在。 我也不想编译新的Tex数学字体,如果可能的话。

使用的一个解决方案是使用sans-serif字体作为希腊字母和数字,但无论出于何种原因,matplotlib忽略了对这些字体的格式:

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

标题改变了

我认为这与这些东西排版的性质有关,但是有什么方法可以解决它吗?

来自matplotlib文档

此外,您可以使用\\mathdefault{...}或其别名\\mathregular{...}来使用mathtext之外的常规文本字体。 这种方法存在许多限制,最明显的是可用的符号要少得多,但是使数学表达式与图中的其他文本很好地融合可能是有用的。

尝试设置

rcParams['text.usetex'] = True

它将尝试使用外部LaTeX安装,而不是内置的mathtext渲染器。 看到这个wiki (即使它有点过时)和关于问题#1336的讨论

如果您的目标是LaTeX,另一个选择是使用pstricks。

这个问题应该在matplotlib 2中修复。请参阅问题

数学模式和常规文本#7778之间的字体大小不同

Matplotlib:正确的数学字体大小

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM