matplotlib中文_【问题】Matplotlib绘图中文乱码问题

再用Matplotlib绘图时,图中出现中文会乱码,是因为没有配置中文字体。

解决步骤如下

1 下载中文字体 SimHei.ttf, 网址是http://www.xiazaiziti.com/210356.html

2 安装SimHei字体

(1)查看matplotlib 配置文件位置

import matplotlib
print(matplotlib.matplotlib_fname())

cddba78632d1bcb6028746386e6fc56f.png

可以看出,作者的matplotlib在/root/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-dat/matplotlibrc

(2)将下载的字体文件SimHei.ttf放到 /root/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-dat/fonts/ttf/ 文件夹中。

(3)修改/root/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc文件,把下面的一行

#font.sans-serif:DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

修改为

font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

修改的地方就是去掉了 # ,在前面添加下载的字体 SimHei名称。

(4) axes.unicode_minus改为False,同时去掉注释符号
axes.unicode_minus : False

3 删除当前用户matplotlib 的缓冲文件

cd ~/.cache/matplotlib 
rm -rf *.*

重启 Anaconda或机器。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']  
mpl.rcParams['font.family']='sans-serif'  
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

x = np.linspace(-8, 8, 1024)
y1 = 0.618 * np.abs(x) - 0.8 * np.sqrt(64 - x ** 2)
plt.plot(x, y1, color='r')
plt.title("解决中文乱码问题")
plt.show()

fcc26993058a596ea26fd963bec7bf9e.png

参考

解决matplotlib不能显示中文的问题(Ubuntu)

https://blog.csdn.net/u012891055/article/details/82288251

https://blog.csdn.net/weixin_39599711/article/details/78813736

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值