ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

matplotlib显示中文

2021-01-19 12:05:09  阅读:235  来源: 互联网

标签:中文 plt 步骤 显示 matplotlib 华文 import font


【注意】

可能与本文主题无关,不过我还是想指出来:使用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 plt
2
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

    Copyright © 2021 李金涛
Powered by .NET 5.0 on Kubernetes  

 

标签:中文,plt,步骤,显示,matplotlib,华文,import,font
来源: https://www.cnblogs.com/ljt1412451704/p/14297149.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有