修正经典风格的Matplotlib数学字体大小

时间:2018-02-01 22:23:39

标签: python css matplotlib fonts

我已经看到了很多关于这个问题的线索,但我似乎无法使其发挥作用。如果你在图上的任何地方添加任何数学方程式,它比普通文本和希腊字母(特别是当你有一个分数)要小得多。我试图修改matplotlibrc以使标准字体更大(标准似乎是10分)。但它说,我必须将它移动到一个特殊的位置才能产生永久效果,我无法找到。有没有办法可以动态地改变数学公式的字体大小(即当我创建一个新的情节时)?我需要你的帮助。我目前正在运行matplotlib的2.1.0版本,总体而言我在anaconda上运行python(在Mac上)。这是输出:

output 请注意,我正在使用style.use('classic')以符合所需的整体风格。如果我不使用这种风格,输出就可以了。有没有什么解决方案可以让我使用这种风格?

我将在下面给你一个示例代码,这样你就可以自己看看希腊字母(左轴)的字体有多小

import matplotlib
from matplotlib import pyplot as plt
from matplotlib import style
style.use('classic')
x = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]
y = [4140,3980,3820,3660,3500,3340,3180,3030,2870,2720,2562,2408,2266,2114,1962,1812,1668,1522,1386,1254,1138,1145,1188,1273,1358,1454,1547,1639,1732,1818,1904]
plt.plot(x,y,'g',label='Salzsäure',linewidth=3)
plt.ylabel(r'Elektrische Leitfähigkeit $\sigma$ in $\frac{\mu S}{cm}$')
plt.xlabel('Volumen 0.1M NaOH in mL')
plt.title('Titration einer Salzsäure unbekannter Konzentration')
plt.annotate('Äquivalenzpunkt', xy=(20,1138), xytext=(20,2300),
arrowprops=dict(facecolor='black',shrink=0.05),
)
plt.legend()
plt.grid(True,color='k')
plt.show()

1 个答案:

答案 0 :(得分:1)

如果添加行

plt.rcParams["mathtext.fontset"] =  "dejavusans"
在设置样式后

,您应该获得所需的输出。请注意,分数总是更小,你不能做太多。

enter image description here