Matplotlib绘图的字体问题
程序员文章站
2022-03-21 14:20:36
...
记录一下,方便自己绘图的查阅,首先自己常用的自定义配置可以写到.mplstyle文件中,直接用plt.style.use('my.mplstyle')设置
中英文混用+非斜体文本
在中文论文中,可能出现中英文混用的标签等,参考Matplotlib 中英文及公式字体设置使用Matplotlib内置tex进行配置即可,(英文字体有限通常是times new roman受限于\mathrm命令,宋体+Times new roman(非斜体的文本或者单位)+公式)代码如下:
import matplotlib.pyplot as plt
from matplotlib import rcParams
config = {
"font.family":'serif',
"font.size": 20,
"mathtext.fontset":'stix',
"font.serif": ['SimSun'],
}
rcParams.update(config)
plt.title(r'宋体 $\mathrm{Times \; New \; Roman}\/\/ \alpha_i > \beta_i$')
plt.axis('off')
plt.savefig("usestix.png")
效果:
如果想使用其他英文字体的话,非斜体的单位就不能随意定制字体了,参考数学文本和公式非斜体文本,可以使用\mathdefault{...}
或者 \mathregular{...}用与普通文本相同的字体设置单位字体,但是上标有些偏上,这个问题没有解决。
import matplotlib.pyplot as plt
from matplotlib import rcParams
config = {
"font.family":'serif',
"font.size": 20,
"mathtext.fontset":'stix',
"font.serif": ['Helvetica'],
}
rcParams.update(config)
plt.title(r'$\mathregular{Helvetica}\/\/ \alpha_i > \beta_i [\mathdefault{m^3/s}][\mathrm{m^3/s}]$')
plt.axis('off')
plt.savefig("usestix.png")
效果如下:
找到任意变换英文字体之后还需要补充更新。目前的这里提到的中英混用还只能限于【中文字体】+Times new roman。
上一篇: C# 将json转换成Datatable
下一篇: matplotlib绘图入门及常用