matplotlib图例中文乱码以及坐标负号显示
在图片的标签名,标题名或者图例中出现中文时,直接运行会出现乱码,文字显示为框框
            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt
plt
              
                .
              
              figure
              
                (
              
              
                )
              
              
plt
              
                .
              
              title
              
                (
              
              
                "哈哈"
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          
          
          快速解决办法
在导入模块后加入下面代码
            
              plt
              
                .
              
              rcParams
              
                [
              
              
                'font.sans-serif'
              
              
                ]
              
              
                =
              
              
                [
              
              
                'SimHei'
              
              
                ]
              
              
                # 用来正常显示中文标签
              
              
plt
              
                .
              
              rcParams
              
                [
              
              
                'axes.unicode_minus'
              
              
                ]
              
              
                =
              
              
                False
              
              
                # 用来正常显示负号
              
            
          
          
            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt
plt
              
                .
              
              rcParams
              
                [
              
              
                'font.sans-serif'
              
              
                ]
              
              
                =
              
              
                [
              
              
                'SimHei'
              
              
                ]
              
              
plt
              
                .
              
              rcParams
              
                [
              
              
                'axes.unicode_minus'
              
              
                ]
              
              
                =
              
              
                False
              
              
plt
              
                .
              
              figure
              
                (
              
              
                )
              
              
plt
              
                .
              
              title
              
                (
              
              
                "哈哈"
              
              
                )
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          
          
          永久解决办法
找到自己想要的中文字体
- 
              在系统中查找已有的字体(好处是不需要安装):在“C:\Windows\Fonts”中选择后缀为“.ttf”的中文字体并复制,这一步我选择了黑体 
- 
              在 fontpalace 上下载对应版本的后缀为“.ttf”的字体,复制到“C:\Windows\Fonts”中安装 
把字体复制到matplotlib的字体文件中
输入下面命令找到matplotlib配置文件
            
              
                print
              
              
                (
              
              matplotlib
              
                .
              
              matplotlib_fname
              
                (
              
              
                )
              
              
                )
              
            
          
          在“c:\program files\python37\lib\site-packages\matplotlib\mpl-data\matplotlibrc”的“font/ttf”文件夹中粘贴刚刚复制的字体,然后修改配置文件matplotlibrc,去掉以下三行代码开头的#
            
              font.family         : sans-serif
font.sans-serif     : SimHei, DejaVu Sans, Bitstream Vera Sans, ...    # 这里注意要把字体名称SimHei放在第一个
axes.unicode_minus  : False    # 修改为False,作用是解决负号的乱码问题
            
          
          还要注意有的字体名称并不是字体文件的名称,可以查看字体文件的属性(标题)确认一下
重新加载字体
做完以上操作后执行下面命令
            
              
                from
              
               matplotlib
              
                .
              
              font_manager 
              
                import
              
               _rebuild
_rebuild
              
                (
              
              
                )
              
            
          
          之后重启python,很多时候这样就解决了。
删除matplotlib缓存文件
如果仍然不能正常显示输入以下代码
            
              matplotlib
              
                .
              
              get_cachedir
              
                (
              
              
                )
              
            
          
          在’C:\Users\sunch\.matplotlib’找到缓存文件夹并删除该文件夹,之后重启python,如果还是不行可以试试重启电脑,我就是重启了才可以,果然没有什么是一次重启解决不了的,如果有那就两次


 
             
             
					 
					