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' : ''}
plt.rc('font', **font) # 步骤一(设置字体的更多属性)
plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)
#...
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
14 plt.show()
灵活的用法。缺点:影响全局字体(所以需要第二步骤)
【总结】
方式二用时才设置,且不会污染全局字体设置,更灵活
方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。
【测试代码】
import numpy as np
import matplotlib.pyplot as plt font = {'family' : 'DFKai-SB',
'weight' : 'bold',
'size' : ''}
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
matplotlib显示中文的更多相关文章
- matplotlib显示中文异常处理
matplotlib显示中文 [做个记录,方便以后使用] [一般导入方式] import matplotlib.pyplot as plt [效果图] [方式一]FontProperties impo ...
- 修改配置文件matplotlibrc,让Matplotlib显示中文
matplotlib默认不支持中文显示,网上的解决办法有好多种,但是大多数都是通过在代码中指定字体,虽然也能实现,但是多出那么几行代码让人觉得很恶心. 本文介绍一种通过修改配置文件matplotlib ...
- matplotlib 显示中文 与 latex冲突
如果在使用中文之前包含了使用latex的语法: mpl.rcParams['text.usetex'] = True 将不能正确显示含有中文的图片. 附 显示中文的方法: from matplotli ...
- matplotlib 显示中文
# --*-- coding: utf-8 --*-- from matplotlib.font_manager import FontProperties import matplotlib.pyp ...
- python tips;matplotlib 显示中文
import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mpl mpl.rcParams['axes.unicode ...
- matplotlib 显示中文问题
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams[' ...
- matplotlib显示中文字体
原始地址:http://zanyongli.i.sohu.com/blog/view/195716528.htm matplotlib 1.0.0版 对于3.0的可能不太适用,要注意语法结构! C:/ ...
- Ubuntu matplotlib显示中文乱码的解决方法
https://blog.csdn.net/huuinn/article/details/78968966
- python数据分析入门——matplotlib的中文显示问题&最小二乘法
正在学习<用python做科学计算>,在练习最小二乘法时遇到matplotlib无法显示中文的问题.查资料,感觉动态的加上几条语句是最好,这里贴上全部的代码. # -*- coding: ...
随机推荐
- hdu 4746Mophues[莫比乌斯反演]
Mophues Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327670/327670 K (Java/Others) Total ...
- iOS interface适配
- android 关于view的onTouch和onClick同时触发解决方案
extends:http://blog.sina.com.cn/s/blog_aa0bd5950101gbwt.html 做了一个悬浮窗,需要处理onTouch和onClick事件, 1 定义一个bo ...
- [吐槽]我为什么讨厌C++
最近在改currennt的代码,我擦擦擦,实在是忍不了了 C++最恶心的地方在于指针引用与面向对象混用!!TMD各种不匹配 举例: template <typename TDevice> ...
- 2018上C语言程序设计(高级)作业- 第4次作业
作业要求一 1.设计思路: 第一步:首先通过cmd进行判断 第二步:根据题目写的分别进入不同的判断函数,进行逐一判断: 2.实验代码: #include <stdio.h> #includ ...
- 分布式存储中HDFS与Ceph两者的区别是什么,各有什么优势?
过去两年,我的主要工作都在Hadoop这个技术栈中,而最近有幸接触到了Ceph.我觉得这是一件很幸运的事,让我有机会体验另一种大型分布式存储解决方案,可以对比出HDFS与Ceph这两种几乎完全不同的存 ...
- 关于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析
Java加密的常用的加密算法类型有三种 1单向加密:也就是不可逆的加密,例如MD5,SHA,HMAC 2对称加密:也就是加密方和解密方利用同一个秘钥对数据进行加密和解密,例如DES,PBE等等 3非对 ...
- Python之shutil模块
shutil 高级的 文件,文件夹,压缩包 处理模块 正常把一个文件的内容拷贝到另外一个文件 s = file("test.py")d = file("test_copy ...
- iOS多线程编程之多线程简单介绍(转载)
一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“ ...
- 学习计划 mysql explain执行计划任务详解
我们在之前已经找到了需要优化的SQL,但是怎么知道它的那些方面需要优化呢? explain就是为了这个使用的. explain显示了 mysql 如何使用索引来处理select语句以及连接表.可以帮助 ...