问题描述

在使用matplotlib绘图时,常常要求图例使用中文,而若直接使用plt.title(‘中文’)或plt.xlabel(‘中文’)时,中文可能会出现下面的小方块

解决方法

快速解决方法

在导入模块后加入下面代码

plt.rcParams['font.sans-serif']=['SimHei']    # 用来设置字体样式以正常显示中文标签
plt.rcParams['axes.unicode_minus']=False    # 默认是使用Unicode负号,设置正常显示字符,如正常显示负号

若仍无法解决,可能是电脑没有’SimHei’这个字体,可以试着用’FangSong’等其他字体

下面是Unicode和ASCII显示负号时的不同(参考matplotlib官网)

永久解决办法

转自:【python数据可视化笔记】——matplotlib图例中文乱码以及坐标负号显示

找到自己想要的中文字体

  1. 在系统中查找已有的字体(好处是不需要安装):在“C:\Windows\Fonts”中选择后缀为“.ttf”的中文字体并复制,这一步我选择了黑体

  2. 在 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-seriffont.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,如果还是不行可以试试重启电脑,我就是重启了才可以,果然没有什么是一次重启解决不了的,如果有那就两次

有关plt.rcParams参数的使用

转自:Matplotlib中plt.rcParams用法(设置图像细节)

plt.rcParams['figure.figsize'] = (5.0, 4.0)     # 显示图像的最大范围
plt.rcParams['image.interpolation'] = 'nearest' # 差值方式,设置 interpolation style
plt.rcParams['image.cmap'] = 'gray'             # 灰度空间#设置rc参数显示中文标题
#设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#设置正常显示字符
plt.rcParams['axes.unicode_minus'] = False
plt.title('sin曲线')
#设置线条样式
plt.rcParams['lines.linestyle'] = '-.'
#设置线条宽度
plt.rcParams['lines.linewidth'] = 3
#绘制sin曲线
plt.plot(x, y, label='$sin(x)$')

matplotlib中文乱码解决及plt.rcParams参数的使用相关推荐

  1. Anaconda matplotlib中文乱码解决

    1. 下载字体 https://www.fontpalace.com/font-download/SimHei/ 2. 安装字体 2.1 windows和mac下:双击安装即可 2.2 如果其他可以把 ...

  2. 解决Ubuntu下matplotlib中文乱码问题-以添加宋体:simsun为例

    解决Ubuntu下matplotlib中文乱码问题-以添加宋体:simsun为例 先从simsun官网上下载宋体字体库 : 查看matplotlib配置文件位置: import matplotlibp ...

  3. Linux(deepin) 解决 Anaconda 环境中 matplotlib 中文乱码问题

    matplotlib 库设置中文显示时会出现小方框,为了解决这个问题查阅了很多资料,但是都是直接在系统环境中修改,而我用的是 Anaconda 自建的环境,无法解决问题,因此查了很久之后找到了解决方法 ...

  4. java getparameter 乱码_request.getParameter(“参数名”) 中文乱码解决方法

    今天浏览项目时候,遇到一个问题,页面用${requestScope.参数名 }获取的值是乱码,然后搜了一下,最后说是编码的问题,附上查找的结果: 在Java 开发中,如果框架搭建的不完善或者初学者在学 ...

  5. anaconda matplotlib绘图中文乱码解决

    网上找了很多解决anaconda中matplotlib中文乱码的解决方法,感觉不够简洁,现在来做个总结.两步,一步找字体,一步设置. 1.字体 使用Windows自带字体,系统字体文件一般保存在 C: ...

  6. Gingko Framework:页面参数中文乱码解决

    Gingko Framework:页面参数中文乱码解决 在formbean中转码 // bname public String getBname() { return businesscode.get ...

  7. php接受get参数乱码,如何解决php get 参数乱码问题,php中文乱码解决办法

    如何解决php get 参数乱码问题如何解决php参数乱码的问题,乱码php获取参数的解决方案:1.使用"iconv ('GB 2312 ',' UTF-8 ',$龚辉):"解决乱 ...

  8. php接收一维数组中文乱码解决

    遍历: foreach ($_REQUEST as $key => $value) { echo "Key: $key; Value:$value<br />\n" ...

  9. 【总结】Qt+Mysql5.5中文乱码解决

    前段时间开发数据库几个模块一直预留着一个数据库内和程序界面上中文乱码的问题未解决,以前做asp.net.JSP,J2EE.C#时候知道,数据库中文乱码一般都是编码问题导致的,问题不大,只需要数据库客户 ...

最新文章

  1. (CV方向)精通C++,该如何学?
  2. [python]练习之递归和循环实现斐波拉契数列
  3. java中static关键字简介
  4. 作者:彭保(1979-),男,博士,深圳信息职业技术学院副教授,《大数据》深圳市大数据发展动态调研组成员。...
  5. 以下关于组装微型计算机的叙述 不正确的是,昆明理工大学 计算机系统练习题...
  6. MFC_recvfrom
  7. 关于python循环
  8. LeetCode—2.堆排序算法
  9. 【C语言】英雄联盟英雄查询系统(源码)
  10. Java多线程编程-(17)-多线程异步调用之Future模式
  11. EMD+EEMD+CEEMD+CEEMDAN分解论文代码复现
  12. 程序员笔名、别名_适合程序员的英文名字
  13. ps网页效果图转html,Photoshop制作简洁干净的网页效果图
  14. 你要的技术干货我都总结好了
  15. Timer源代码分析
  16. 一点Scala学习资源
  17. 南岭之南_RWERWERWE_96921_新浪博客
  18. VS2010和VS2013同时安装visual assist X助手
  19. linux 多显卡 多显示器,Ubuntu 14.04安装AMD显卡驱动双屏显示器完全解决方案
  20. 考研高等数学张宇30讲笔记——第三讲 函数极限与连续性

热门文章

  1. 终于找到要辞职的原因了
  2. 红警自建服务器,20年前占据中国网吧的红警,现在被老外做成页游,服务器多次被挤爆!...
  3. oracle 税,【oracle】个人所得税公式
  4. windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流
  5. PHP 字符串分割 explode 与 str_split 函数
  6. linux电子书解决方案Calibre
  7. 免费获取 Jetbrain 全家桶使用兑换码的正确姿势!
  8. 第十九题、数制转换(难度系数75)
  9. 怎么点亮段码屏_灰阶显示段码液晶屏及其灰阶显示方法与流程
  10. oracle启动包找不到数据文件,ORA-01078,LRM-00109参数文件问题,导致数据库无法启动...