之前看了不少博客,实现了在matplotlib中分别设置中文宋体和英文Times New Roman,下面这个图就用这种方式,将坐标轴刻度设置为Times New Roman,坐标轴标题显示为宋体。

但是这种方法不能解决当中文和英文在一起的时候的字体区分问题。这个图里的图例和ylabel里的这个百分号就存在这个问题。

查了一圈资料,没发现特别完美的解决方法,只能依靠这个回答等效替代的方法来近似解决这个问题,即寻找一种中文字体像宋体、英文字体像Times New Roman的字体。根据这个回答,感觉华光书宋的效果最佳,所以将全局字体设置为华光书宋,即可解决这个问题。以下记录解决步骤:

1. 找到系统里的华光书宋,并复制到matplotlib的font文件夹下。

1.1系统字体目录:C:\Windows\Fonts,找到其中的这个图标:(如果没有的话去网上下一个,然后进行下一步)

1.2matplotlib字体目录,如果不知道的话,可以通过以下代码查询:

matplotlib.matplotlib_fname()

比如我的输出为:'d:\\Program Files\\Anaconda3\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'

然后将上面那个字体文件,拷到fonts目录下的ttf文件夹里面。其实拷过去就发现,这个字体文件实际的名字叫做HGSS_CNKI.TTF,记住这个名字,后面要用

2. 修改matplotlib的matplotlibrc文件

2.1 回到1.2中的d:\Program Files\Anaconda3\lib\site-packages\matplotlib\mpl-data\目录,用文本编辑器打开matplotlibrc这个文件

2.2 搜索font.serif,找到下图位置:

将华光书宋字体的名称“HGSS_CNKI”添加到font.serif这一行。

3. 清除matplotlib缓存,重启IDE

3.1 用以下代码查询matplotlib的缓存位置

print(matplotlib.get_cachedir())

比如我的是:C:\Users\Administrator\.matplotlib

打开这个目录,直接把这个.matplotlib文件夹删掉

3.2 重启以下python IDE

3.3 用rcParams设置一下全局字体,把我们的华光书宋加进去

config = {'font.family':'HGSS_CNKI',
}
plt.rcParams.update(config)

4. 愉快画图!

以下是实现效果,后续没有任何位置再重复设置字体了。

matplotlib绘图实现中文宋体和英文Times New Roman相关推荐

  1. matplotlib:实现中文“宋体”,英文“Times New Rom”

    matplotlib:实现中文"宋体",英文"Times New Rom" 操作系统是mac 安装simsun 下载字体SimHei.ttf     SimSu ...

  2. Python(matplotlib)画图设置正斜体,及中文宋体、英文Timenews--用于论文画图,导出高清晰图像

    一.设置图像x.y两轴及文本标签内容为中文宋体.英文Timenews,字体为10.5磅 在代码钱加入: config = {"font.family": 'serif'," ...

  3. python Matplotlib绘图实现:中文宋体,英文新罗马(科研人必备);解决Font family [‘sans-serif‘] not found.

    1.合并字体 将电脑自带的宋体和Times New Roman字体合并为新字体,我命名为SongNTR.ttf https://github.com/nowar-fonts/Warcraft-Font ...

  4. Ubuntu中Matplotlib绘图的中文乱码

    问题引入 在Ubuntu系统中使用Matplotlib绘图,如若没有进行相关配置可能会遇到中文乱码问题. 使用以下代码作图. import matplotlib matplotlib.use('Agg ...

  5. matplotlib 绘图 显示中文

    参考: Matplotlib中正确显示中文的四种方式 在 matplotlib 中无法直接显示中文(比如使用: plt.xlabel(), plt.ylabel, plt.title()等) from ...

  6. (转发)python3用matplotlib绘图出现中文乱码的问题

    from pandas import Series,DataFrame import matplotlib.pyplot as plt from pylab import mpl mpl.rcPara ...

  7. matplotlib绘图输出中文字体【可以使用自己下载的字体】

    使用的字体是毛体 下载地址:http://downsc.chinaz.net/Files/DownLoad/font2/ss.rar import matplotlib.pyplot as plt f ...

  8. python matplotlib绘图显示中文

    plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False

  9. Python matplotlib绘图如何显示中文的问题【有报错没有解决】

    一文详解matplotlib的配置文件以及配置方式 主要介绍路径问题和配置文件相关介绍 linux安装字体库(simSun为例)可以在终端中显示中文 Matlab绘图中下标.斜体及希腊字母的使用方法 ...

  10. Matplotlib 中文宋体 英文 Times New Roman 设置

    安装宋体 查找plt安装目录: locate -b '\mpl-data' 得到: /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data ...

最新文章

  1. 大数据分析处理框架——离线分析(hive,pig,spark)、近似实时分析(Impala)和实时分析(storm、spark streaming)...
  2. cocos2dx andoroid切换后台后资源重载
  3. struts2控制标签(一)选择标签,iterator标签,append标签
  4. MongoDB 数据库、集合创建删除与文档插入
  5. elementui在vue校验表单失效的原因之一(当表单含有一到多个对象)
  6. m 文件 dll matlab 中调用_利用USO服务将特权文件写入武器化
  7. linux教程 sed命令的用法,Linux基础教程之文件三剑客sed命令用法详解
  8. 滴滴自动驾驶首轮融资超5亿美元 加大研发投入 助力“新基建”
  9. 详细分析开源软件 ExifTool 的任意代码执行漏洞 (CVE-2021-22204)
  10. 各种同步方法性能比较(synchronized,ReentrantLock,Atomic)
  11. 基于SSM疫情信息爬取与分析系统
  12. 计算一个文件下的所有视频总时长
  13. STM32控制AD7124采集调试流程
  14. 两款投屏和跨屏协作软件
  15. mac免费的虚拟机怎么安装?VMware虚拟机免费获取教程
  16. Linux内存卡槽故障判断,内存插槽损坏的三种常见故障
  17. table(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)
  18. Python 打造微信群聊天机器人(带操作界面)
  19. POI-HSSFWorkbook合并单元格
  20. Chrome浏览器首页被hao123劫持的解决办法

热门文章

  1. 一文详解NGram语言模型以及困惑度perplexity
  2. gloox1.0使用Emai格式的账号登录
  3. office2007设置默认粘贴为选择性粘贴
  4. Latex录入参考文献bib.bib文件
  5. zynq-7000系列基于zynq-zed的vivado初步设计之使用jtag-uart(MDM)
  6. 三星6818芯片火焰报警器驱动的编写
  7. ASP.NET2.0 ReportingServices,报表灵魂的收割者(一)【月儿原创】
  8. 毕业设计成品价格_一套毕业设计多少钱
  9. Python:实现monte carlo蒙特卡罗算法(附完整源码)
  10. bluefish4框架平台