文章目录
- 前言
- 01.工具栏组件
- 02.图表数据
- 03.设置字体字典
- (1)全局字体样式
- (2)常用中文字体对应名称
- (3)查询当前系统所有字体
- 04.图像配置实例
- 05.图表标题
- 06.文本组件
- 07.坐标轴标签组件
- 08.网格组件
- 09.绘制折线
- 10.图例组件
- 11.图表渲染
- 总结
前言
- Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
- Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
- Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
- Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。
使用Matplotlib生成一个曲线的完整代码(其中部分代码是可以省略的,为了便于将相关属性快速有效的予以记录,本文尽量将相关属性都列了出来。)
# 导入库
import numpy as np
import matplotlib.pyplot as plt
# 设置中文显示
plt.rcParams['font.sans-serif'] = ['microsoft yahei'] #显示中文
# 01.工具栏组件
plt.rcParams['toolbar'] = 'toolbar2' # 设置工具栏
# 02.模拟数据
x = np.linspace(0.0, 5.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x)
# 03.设置字体字典
font = {'family': 'microsoft yahei',
'color': '#000',
'weight': 'normal',
'size': 12}
# 04.图像配置实例
plt.figure('漏刻有时数据可视化 - TestWin', facecolor='w') # 设置图形弹出窗口标题
# 05.图表标题
plt.title('漏刻有时折线图', fontdict=font, loc='center', y=1) # 图表标题
# 06.文本组件
plt.text(0.91, -0.31, r'智能化数据的转账点', fontdict=font, c='b', rotation=30) # 文本
# 07.坐标轴标签组件
plt.xlabel('时间:单位 (s)', fontdict=font) # x轴
plt.ylabel('数值:单位 (mv)', fontdict=font) # y轴
# 08.网格组件
plt.grid(which='major', axis='both', color='g', linestyle='-', linewidth=0.1) # 网格
# 09.绘制折线
plt.plot(x, y, 'r', label='直连线', marker='d') # 绘制折线
# 10.图例组件
plt.legend() # 设置图例
# 11.图表渲染
plt.show()
01.工具栏组件
'''
工具栏组件
# 注意,应当放置在图像实例化之前。
# None模式:禁用工具栏
# toolbar2模式:默认工具栏布局
# toolmanager模式:工具栏布局在首行
'''
plt.rcParams['toolbar'] = 'toolbar2' # 设置工具栏
toolmanager模式:
RcParams说明文档:RcParams
02.图表数据
折线图,一般是x轴和y轴数据,设置为对应的列表即可。本案例作为Matplotlib库的基础知识,只做简单的数据展示,不涉及更复杂的数据读取和计算。
如:
- numpy模拟数据
x = np.linspace(0.0, 5.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x)
- 自定义固定数据
x = [1, 2, 3, 4, 5]
y = [i * 2 for i in x] #推导式
- random随机数据
x = [random.randint(0, 10) for i in range(10)]
y = [i * 2for i in x]
- pandas读取本地excel表格数据
- pymysql读取数据库数据
03.设置字体字典
(1)全局字体样式
Matplotlib如果未正常设置中文字体,会出现乱码。基于实际开发情况,图像标题、图表标题、图例和标签都涉及到中文字体的应用,因此采用使用 matplotlib 模块的 rcParams,全局字体样式:
plt.rcParams['font.sans-serif'] = ['microsoft yahei']`
当然,也可以具体在某些组件使用时,单独调用对应的属性,如:
plt.title('自定义标题名称', fontproperties='SimHei')
(2)常用中文字体对应名称
中文名称 | 英文名称 |
---|---|
宋体 | SimSun |
黑体 | SimHei |
微软雅黑 | Microsoft YaHei |
微软正黑体 | Microsoft JhengHei |
新宋体 | NSimSun |
新细明体 | PMingLiU |
细明体 | MingLiU |
标楷体 | DFKai-SB |
仿宋 | FangSong |
楷体 | KaiTi |
隶书 | LiSu |
幼圆 | YouYuan |
华文楷体 | STKaiti |
华文宋体 | STSong |
华文中宋 | STZhongsong |
华文仿宋 | STFangsong |
(3)查询当前系统所有字体
如果要实时查询当前系统的所有字体,可以使用matploylib自带的font_manager
属性进行遍历查询:
# 查询当前系统所有字体
from matplotlib.font_manager import FontManager
sys_fonts = [f.name for f in FontManager().ttflist]
for f in sorted(sys_fonts):
print(f)
字体结果展示:
04.图像配置实例
plt.figure() 函数可以用于创建绘图窗口,可以传入以下常用参数:
matplotlib.figure.Figure(figsize=None, dpi=None, *, facecolor=None, edgecolor=None, linewidth=0.0, frameon=None, subplotpars=None, tight_layout=None, constrained_layout=None, layout=None, **kwargs)
如:
# 配置实例
plt.figure('漏刻有时数据可视化 - TestWin', facecolor='w') # 设置图形弹出窗口标题
参数 | 说明 |
---|---|
num | 传入整数或字符串。整数可以指定创建或激活对应编号窗口并保存至 number 属性,字符串可以设置该窗口标题 |
figsize | 传入两个浮点数组成的元组,设置绘图窗口的宽和高 |
dpi | 传入整数,设置分辨率 |
facecolor | 传入代表颜色的字符串,设置背景色 |
edgecolor | 传入代表颜色的字符串,设置边框颜色 |
clear | 如果传入True,且当前窗口已经有绘图时,清空当前绘图 |
figure说明文档:matplotlib.figure
05.图表标题
06.文本组件
07.坐标轴标签组件
08.网格组件
09.绘制折线
10.图例组件
11.图表渲染
总结
Matplotlib的基础选项属性以官网为准https://matplotlib.org/stable/api/pyplot_summary.html,由于是英文缘故,在实际学习和开发过程中,需要尽量多实践多练习。