在使用matplotlib plt时出现的问题

参考:https://blog.csdn.net/dafu_dafu/article/details/119239639

https://www.csdn.net/tags/NtjaUg5sMzQyODYtYmxvZwO0O0OO0O0O.html

颜色显示诡异

键入以下代码即可解决

img2 = cv.cvtColor(img, cv.COLOR_BGR2RGB)

![image-20220415172924855](/Users/heboxuan/Library/Application Support/typora-user-images/image-20220415172924855.png)

中文不显示(mac解决办法,win可能也适用)

准备工作

  • Python常用中文字体

    名称 字体
    黑体 SimHei
    微软雅黑 Microsoft YaHei
    微软正黑体 Microsoft JhengHei
  • 使用python查看字体所在位置matplotlib

    1
    2
    3
    4
    5
    6
    import matplotlib.pyplot as plt
    from matplotlib import font_manager

    for font in font_manager.fontManager.ttflist:
    # 查看字体名以及对应的字体文件名
    print(font.name, '-', font.fname)

    这个matplotlib下的ttf文件夹就是字体所在文件夹

  • 下载字体Simhei.ttf

    自行百度下载,将Simhei.ttf放到上述ttf文件夹下

修改matplotlibrc

matplotlibrc在matplotlib/mpl-data目录下,对matplotlibrc文件进行修改

1
2
3
4
5
6
7
8
9
# 249行左右,去掉注释
font.family: sans-serif

# 257行左右,同样去掉注释,并添加Simhei字体,根据自己实际字体进行添加
font.sans-serif: Simhei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

# 400行左右,去掉注释,并修改值为False
axes.unicode_minus: False # use Unicode for the minus symbol rather than hyphen. See
# https://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes

删除缓存

使用python查看缓存路径,删除缓存文件,重启编辑器,即可解决

1
2
import matplotlib
print(matplotlib.get_cachedir())