Search

Travel Tips

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Lifestyle

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Hotel Review

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Matplotlib不能显示中文和正负号的问题WindowsUserWarning: findfont: Font family ['sans-serif', 'SimHei'] not found.

Matplotlib不能显示中文和正负号的问题WindowsUserWarning: findfont: Font family ['sans-serif', 'SimHei'] not found.

Matplotlib不能显示中文和正负号的问题


matplitlib默认情况下是不支持中文字体的,要想在matplitlib中使用中文标签标题要进行相关的配置。

 方法一


 1.下载相应的中文字体链接:https://pan.baidu.com/s/1Jb4-qWXPd-iDP4VnaIYhDQ 密码:ppse

这个网盘链接里面有整理好的许多字体样式,可以根据需求进行下载,选择要使用的字体样式

##### 1.1这时在画图的程序中加入下面两行代码在画的图中就可以显示中文了,代码中要改为自己的路径名称,后面跟要使用的字体样式。

一般中文可以使用下载的文件下的    /font-master/unicode  的下面的SimHei.ttf


```
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"自己的路径名字/SimHei.ttf", size=15)
```

- 不过这种方法比较麻烦每次都要寻找添加路径名

- 可以试一下方法二一劳永逸


方法二


1.首先下载字体

2.查找自己的电脑中matplitlib的配置文件


```
import matplotlib
print(matplotlib.matplotlib_fname())
```

在IDLE中运行代码找出自己matplitlib的配置文件的路径

 3.把要使用的字体文件(比如SimHei.ttf字体)放入/site-packages/matplotlib/mpl-data/fonts/ttf下面

 4.这时运行程序之后图中还不能显示中文是因为matplotlib还存在缓存,清除缓存后就能够正常运行了。

- (1) 在Linux下:删除文件夹~/.cache/matplotlib/(~/.cache/matplotlib/fontList.json文件没有保存新安装的字体)。如果不存在上述文件夹,则删除 ~/.cache/ipython(?本次运行成功)

- (2)在Windows下:删除C:\Users\dongfang\.matplotlib文件夹

#### 5.之后只要在要使用中文的图例中写入下面一句就可以完美的解决中文乱码问题了


```
# 用来正常显示中文标签,SimHei是字体名称,字体必须再系统中存在,字体的查看方式和安装第三部分
plt.rcParams['font.sans-serif']=['SimHei']  
```


 5.之后再运行程序就可以显示中文了

Tags:

这是一个简介
    互联网冲浪金牌选手。赖床世锦赛纪录保持者,拖延俱乐部顶级VIP,夜宵外卖一级鉴赏师,国家脱单脱贫重点扶持对象,中央戏精学院优秀学生,亚洲酸柠檬推广大使,国家一级退堂鼓表演艺术家。
评论 (125)
评论

我是 s enim interduante quis metus. Duis porta ornare nulla ut bibendum

Rosie

6 minutes ago

Sed ac lorem felis. Ut in odio lorem. Quisque magna dui, maximus ut commodo sed, vestibulum ac nibh. Aenean a tortor in sem tempus auctor

Agatha Christie

December 4, 2020 at 3:12 pm

Sed ac lorem felis. Ut in odio lorem. Quisque magna dui, maximus ut commodo sed, vestibulum ac nibh. Aenean a tortor in sem tempus auctor

Steven

December 4, 2020 at 3:12 pm

Donec in ullamcorper quam. Aenean vel nibh eu magna gravida fermentum. Praesent eget nisi pulvinar, sollicitudin eros vitae, tristique odio.

Danielle Steel

December 4, 2020 at 3:12 pm