毕业论文Matplotlib绘图中英文设置(一)
essay
2 min
毕业论文Matplotlib绘图中英文设置(一)
使用LaTeX输出中英文论文图片
“又是一年春来到~ 柳絮儿满天飘~ 暖风轻扬桃花红了~ 榆钱儿窜上了梢~ ”
毕业撒花~
壹丨Matplotlib无法同时使用两种字体
毕设论文绘图要求中文宋体、英文新罗马,但使用Matplotlib绘图时无法同时使用两种字体。例如:
1 | font = {'family': 'Times New Roman', |
上述代码设置图例字体为新罗马,但当图例中出现CJK字符时会变成方块。
解决方法:
- 参考[3]使用华文宋体接近“SimSun+Times New Roman”的效果。
- 不要求中文宋体、英文新罗马时,可以使用Noto Serif SC字体,可以避免中文变成小方块。
- 本文使用pgf输出符合毕设条件的绘图
贰丨解决方法
第一步,安装LaTeX软件,Windows推荐MiKTex,macOS推荐MacTeX。
第二步,新建绘图样式于:C:\Users\MasterMao\.matplotlib\stylelib\mastermao.mplstyle
1 | # 多颜色循环 |
叁丨测试用例
使用示例:
1 | import matplotlib as mpl |
番外丨无SimSun、Times要求时使用Noto Serif SC字体
不要求中文宋体、英文新罗马时,可以使用包含中英文字符的字体,这里使用Google的Noto Serif SC字体(旧版叫Noto Serif CJK SC)
下载安装字体后,删除用户/.matplotlib/fontlist-v330.json,稍后使用时会重新生成
本文已发表在微信公众平台
Matplotlib毕业论文绘图
参考
[1] GitHub,@John D. Garrett,garrettj403/SciencePlots
[2] 知乎,@cherichy,Matplotlib 中英文及公式字体设置
[3] 知乎,@如果我可以忘记,回复“用Python的matplotlib画图,怎么保证xlabel中中文用宋体,英文用新罗马?”