安装adjustText后图表字体变粗,更新matplotlib遇WinError32求助
解决Matplotlib字体全变粗及更新失败问题
一、先搞定Matplotlib更新的文件占用错误
出现WinError 32是因为DejaVuSans-Bold.ttf被进程占用,大概率是Jupyter或Python后台进程没关死,按下面步骤来:
- 关掉所有Jupyter窗口、终端,打开任务管理器结束所有Python、Jupyter相关进程
- 先试conda更新:
要是还报错,用conda update matplotlib--user绕开权限/占用问题:pip install --upgrade matplotlib --user
二、重置字体配置解决全粗体问题
更新后字体还是粗,说明Matplotlib的默认字体配置被改了,直接重置:
- 清Matplotlib缓存:
找到Windows下的缓存目录C:\Users\user1\.matplotlib,删掉里面所有文件(尤其是fontlist-v330.json这类字体缓存) - 临时指定正常字体(绘图前加这段代码):
import matplotlib.pyplot as plt plt.rcParams.update({ 'font.family': 'DejaVu Sans', 'font.weight': 'normal', 'axes.labelweight': 'normal', 'axes.titleweight': 'normal', 'xtick.labelweight': 'normal', 'ytick.labelweight': 'normal' }) - 检查全局配置文件:
找到c:\users\user1\anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc,打开后找这些参数,确保都是normal:
之前要是被改成font.family: DejaVu Sans font.weight: normal axes.labelweight: normal axes.titleweight: normal xtick.labelweight: normal ytick.labelweight: normalbold,改回normal就行。
三、验证修复效果
跑一段简单代码测试:
import matplotlib.pyplot as plt plt.plot([1,2,3], [4,5,6]) plt.title('测试标题') plt.xlabel('X轴标签') plt.ylabel('Y轴标签') plt.show()
字体正常就说明搞定了。
内容的提问来源于stack exchange,提问作者paul
相关产品推荐
相关产品推荐

