matplotlib中文字体乱码 尤其是Axes3D

matplotlib中文字体乱码 尤其是Axes3D

乱码的情况通常是因为你没有安装响应的字体,所以只需要下载对应字体,并正确配置即可。

首先,下载字体:https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf

这里给出来的是黑体。

其次,需要让matplotlib找到字体,这里有两种方案,第一种,直接把字体放到matplotlib库的目录里,第二种放到你项目的目录里,具体操作如下。

1、放到matplotlib目录里 可以解决Axes3D乱码问题

首先用下面的代码找到你matplotlib字体的目录:

import matplotlib
print(matplotlib.matplotlib_fname())

上面的输出应该如下:

xxxx/site-packages/matplotlib/mpl-data/matplotlibrc

对应字体目录应该是:

xxxx/site-packages/matplotlib/mpl-data/fonts/ttf/

所以只需要把上面下载的SimHei.ttf放到该目录下即可。

然后在代码里面用如下的代码就可以找到了:

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'

如果仍然出错,可以尝试清空下matplotlib的缓存,在目录~/.matplotlib 下面。windows在C:/用户/用户名xx/.matplotlib下面。

这种方案因为是全局的,所以可以解决Axes3D的乱码问题。

2、放到任意位置

下面的方案是局部的,你可以把字体放到任意位置,然后在代码里配置字体位置,并且加载字体即可。代码如下:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname="SimHei.ttc", size=12)
plt.title("中文",fontproperties=font)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值