博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matplotlib显示中文
阅读量:6525 次
发布时间:2019-06-24

本文共 2349 字,大约阅读时间需要 7 分钟。

【注意】

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

import matplotlib.pyplot as plt

 

import pylab as plt

 

 

【效果图】

 

【方式一】FontProperties

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

总的来说,很丑陋。

 

【方式二】 fontproperties

1 import matplotlib.pyplot as plt2 3 # ...4 5 plt.xlabel("x轴") 6 plt.ylabel("y轴", fontproperties="SimSun") # 步骤一    (宋体)7 plt.title("标题", fontproperties="SimHei") #          (黑体)8 plt.show()

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

 

【方式三】rcParams

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

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

 

 

【方式四】rc

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

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

 

【总结】

方式二用时才设置,且不会污染全局字体设置,更灵活

方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

 

 【测试代码】

1 import numpy as np 2 import matplotlib.pyplot as plt 3  4 font = {
'family' : 'DFKai-SB', 5 'weight' : 'bold', 6 'size' : '16'} 7 plt.rc('font', **font) # pass in the font dict as kwargs 8 plt.rc('axes',unicode_minus=False) 9 10 11 x = np.linspace(0, 10, 1000)12 y = np.sin(x)13 z = np.cos(x**2)14 15 plt.figure(figsize=(8,4))16 plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)17 plt.plot(x,z,"b--",label="$cos(x^2)$")18 plt.xlabel("x轴")19 plt.ylabel("y轴")20 plt.title("标题")21 plt.ylim(-1.2,1.2)22 plt.legend()23 plt.show()
View Code

 

 

【附录】

一些中文字体的英文名

宋体     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

转载地址:http://pcjbo.baihongyu.com/

你可能感兴趣的文章
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
查看>>
ios兼容iphonex刘海屏解决方案
查看>>
就是要你懂TCP -- 握手和挥手
查看>>
Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
查看>>
《Python游戏编程快速上手》一1.3 如何使用本书
查看>>
《Android游戏开发详解》——第1章,第1.3节声明和初始化变量
查看>>
《Visual Studio程序员箴言》----1.2 滚动与导航
查看>>
Processing编程学习指南2.7 Processing参考文档
查看>>
架构师速成-架构目标之伸缩性\安全性
查看>>
执行可运行jar包时读取jar包中的文件
查看>>
linux下ExtMail邮件使用及管理平台
查看>>
linux中iptables设置自建dns服务器的端口
查看>>
TP5+PHPexcel导入xls,xlsx文件读取数据
查看>>
基于Yum安装zabbix3.0
查看>>
Master-work模式
查看>>
dos命令行 指令
查看>>
RT-Thread--时间管理
查看>>
BUPT 63T 高才生 找最佳基站
查看>>
linux 学习(二)防火墙
查看>>
scala001
查看>>