Python实现matplotlib显示中文的方法详解

 更新时间:2018年02月06日 14:07:24   作者:罗兵  
这篇文章主要介绍了Python实现matplotlib显示中文的方法,结合实例形式详细总结分析了Python使用matplotlib库绘图时显示中文的相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了Python实现matplotlib显示中文的方法。分享给大家供大家参考,具体如下:

【注意】

可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)

import matplotlib.pyplot as plt

import pylab as plt

【效果图】

【方式一】FontProperties

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 步骤一
# ...
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) # 步骤二
plt.xlabel("x轴", fontproperties=font) # 步骤三
plt.ylabel("y轴", fontproperties=font)
plt.title("标题", fontproperties=font)
plt.show()

总的来说,很丑陋。

【方式二】 fontproperties

import matplotlib.pyplot as plt
# ...
plt.xlabel("x轴")
plt.ylabel("y轴", fontproperties="SimSun") # 步骤一  (宋体)
plt.title("标题", fontproperties="SimHei") #     (黑体)
plt.show()

灵活,另一个优点:不污染全局字体设置

【方式三】rcParams

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)
#...
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

简洁的用法。缺点:污染全局字体设置。(所以需要第二步骤)

【方式四】rc

import matplotlib.pyplot as plt
font = {'family' : 'SimHei',
    'weight' : 'bold',
    'size'  : '16'}
plt.rc('font', **font)        # 步骤一(设置字体的更多属性)
plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)
#...
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

灵活的用法。缺点:影响全局字体(所以需要第二步骤)

【总结】

方式二用时才设置,且不会污染全局字体设置,更灵活
方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

【测试代码】

import numpy as np
import matplotlib.pyplot as plt
font = {'family' : 'DFKai-SB',
    'weight' : 'bold',
    'size'  : '16'}
plt.rc('font', **font) # pass in the font dict as kwargs
plt.rc('axes',unicode_minus=False)
x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x**2)
plt.figure(figsize=(8,4))
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)
plt.plot(x,z,"b--",label="$cos(x^2)$")
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()

运行结果:

【附录】

一些中文字体的英文名

宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
隶书 LiSu
幼圆 YouYuan
华文细黑 STXihei
华文楷体 STKaiti
华文宋体 STSong
华文中宋 STZhongsong
华文仿宋 STFangsong
方正舒体 FZShuTi
方正姚体 FZYaoti
华文彩云 STCaiyun
华文琥珀 STHupo
华文隶书 STLiti
华文行楷 STXingkai
华文新魏 STXinwei

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Flask搭建虚拟环境并运行第一个flask程序

    Flask搭建虚拟环境并运行第一个flask程序

    这篇文章主要介绍了Flask搭建虚拟环境并运行第一个flask程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python探索之pLSA实现代码

    Python探索之pLSA实现代码

    偶然看到了pLSA模型这个东东,不懂,于是找了找资料,这里分享给大家一段代码,帮助理解吧。不好的地方还请多多指教。
    2017-10-10
  • python捕获警告的三种方法

    python捕获警告的三种方法

    这篇文章主要介绍了python捕获警告的三种方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • Python3 实现爬取网站下所有URL方式

    Python3 实现爬取网站下所有URL方式

    今天小编就为大家分享一篇Python3 实现爬取网站下所有URL方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python部署chineseocr_lite的实现示例

    python部署chineseocr_lite的实现示例

    本文主要介绍了python部署chineseocr_lite的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python中集合的内建函数和内建方法学习教程

    Python中集合的内建函数和内建方法学习教程

    这篇文章主要介绍了Python中集合的内建函数和内建方法学习教程,包括工厂函数和仅用于可变集合的方法等知识点,需要的朋友可以参考下
    2015-08-08
  • Python中使用异常处理来判断运行的操作系统平台方法

    Python中使用异常处理来判断运行的操作系统平台方法

    这篇文章主要介绍了Python中使用异常处理来判断运行的操作系统平台方法,这个方法比较新颖,,需要的朋友可以参考下
    2015-01-01
  • python如何判断文件存在方式

    python如何判断文件存在方式

    这篇文章主要介绍了python判断文件存在方式,判断文件是否存在在实际应用中用的非常多,下面我们来归纳一下检查文件、文件夹是否存在的各种操作,需要的朋友可以参考下
    2022-09-09
  • 使用IronPython把Python脚本集成到.NET程序中的教程

    使用IronPython把Python脚本集成到.NET程序中的教程

    这篇文章主要介绍了使用IronPython把Python脚本集成到.NET程序中的教程,现在刚刚被微软开源的.NET重新成为业界热点、本文介绍了使Python和.NET交互的IronPython,需要的朋友可以参考下
    2015-03-03
  • python实现双色球随机选号

    python实现双色球随机选号

    这篇文章主要为大家详细介绍了python实现双色球随机选号,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01

最新评论