matplotlib显示中文

简介: 【注意】 可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:) import matplotlib.pyplot as plt   import pylab as plt     【效果图...

【注意】

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

目录
相关文章
|
2月前
|
Linux iOS开发 MacOS
Matplotlib 中文显示
Matplotlib 中文显示
64 5
|
4月前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 饼图 3
使用 Matplotlib 的 `pie()` 方法绘制饼图,详细解释了 `pie()` 方法的参数,如 `x`、`labels`、`colors` 和 `autopct` 等,并提供了设置饼图标签和颜色的示例代码。饼图是一种常用的数据可视化图形,用于展示各部分在整体中的比例。`pie()` 方法可返回包含扇形、文本和自动生成文本标签的对象列表。
50 5
|
4月前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 饼图 2
使用 Matplotlib 库中的 `pyplot` 模块 `pie()` 方法来创建饼图,并详细解释了 `pie()` 方法的各种参数,包括数据输入 `x`、扇区分离度 `explode`、标签 `labels`、颜色 `colors`、百分比格式 `autopct` 等,还说明了该方法可以返回包含扇形、文本和自动文本对象的列表。通过一个简单的示例展示了基本饼图的绘制过程。
41 4
|
4月前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 饼图 4
使用 Matplotlib 的 `pie()` 方法绘制饼图,展示各部分占比。`pie()` 方法可通过多个参数定制图表样式,如颜色、标签和百分比显示格式等。通过实例演示了如何突出显示特定扇区并格式化百分比输出。
38 4
|
4月前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 饼图 5
使用 Matplotlib 的 `pie()` 方法绘制饼图,通过参数设置(如颜色、标签和比例等),轻松展示各类别占比。示例代码展示了如何创建一个具有突出部分的彩色饼图并显示百分比。`pie()` 方法支持多种参数定制,包括阴影、旋转角度及文本属性等。
66 3
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 网格线 2
本教程介绍如何使用 Matplotlib 的 `grid()` 方法自定义图表网格线。通过调整参数 `b`、`which`、`axis` 及 `**kwargs`,可以灵活控制网格线的显示状态、类型及样式。示例展示了仅在 x 轴方向添加网格线的方法。
36 6
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 网格线 1
使用 Matplotlib 的 `grid()` 方法在图表中添加网格线,通过设置参数如 b(开启或关闭网格线)、which(主次网格线)、axis(指定方向)及 kwargs(颜色、线型等),轻松自定义网格样式,增强图表可读性。
43 6
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 网格线 3
本教程介绍如何使用 Matplotlib 的 `grid()` 方法自定义图表网格线。通过设置参数 `b`、`which`、`axis` 和 `**kwargs`,可以灵活控制网格线的显示与否及样式。示例展示了如何添加并设置网格线的颜色、样式和宽度,帮助你美化图表布局。
47 3
|
4月前
|
数据可视化 Python
Matplotlib 教程 之 Matplotlib 饼图 1
使用 Matplotlib 库中的 `pyplot` 模块 `pie()` 方法来绘制饼图,并详细解释了 `pie()` 方法的参数,包括数据输入 `x`、扇区间距 `explode`、标签 `labels`、颜色 `colors`、百分比格式 `autopct`、标签距离 `labeldistance`、阴影 `shadow`、半径 `radius`、起始角度 `startangle`、逆时针方向 `counterclock`、扇形属性 `wedgeprops`、文本标签属性 `textprops`、饼图中心位置 `center`
44 1
|
4月前
|
Python
Matplotlib 教程 之 Matplotlib 中文显示 4
Matplotlib 中文显示教程,介绍如何通过设置字体参数或下载支持中文的字体库(如思源黑体)来实现在 Matplotlib 中正确显示中文。示例代码展示了如何使用思源黑体设置图表标题和轴标签的中文显示。
33 0

热门文章

最新文章