python数据可视化开发(1):Matplotlib库基础知识


前言

在这里插入图片描述

  • 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.设置字体字典

全局字体样式

Matplotlib如果未正常设置中文字体,会出现乱码。基于实际开发情况,图像标题、图表标题、图例和标签都涉及到中文字体的应用,因此采用使用 matplotlib 模块的 rcParams,全局字体样式:

plt.rcParams['font.sans-serif'] = ['microsoft yahei']`

当然,也可以具体在某些组件使用时,单独调用对应的属性,如:

plt.title('自定义标题名称', fontproperties='SimHei')

常用中文字体对应名称

中文名称 英文名称
宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
隶书 LiSu
幼圆 YouYuan
华文楷体 STKaiti
华文宋体 STSong
华文中宋 STZhongsong
华文仿宋 STFangsong

查询当前系统所有字体

如果要实时查询当前系统的所有字体,可以使用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,且当前窗口已经有绘图时,清空当前绘图

官方文档:matplotlib.figure

05.图表标题

配置格式

matplotlib.pyplot.title(label, fontdict=None, loc=None, pad=None, *, y=None, **kwargs)

参数说明

参数 说明 选项
label 文本内容 字符串
fontdict 字体格式 ‘fontweight’: rcParams[‘axes.titleweight’], ‘color’: rcParams[‘axes.titlecolor’]
loc 位置 ‘center’, ‘left’, ‘right’,默认:‘center’
y Y轴位置 1.0为顶部
**kwargs 文本属性

官方文档:

matplotlib.pyplot.title

06.文本组件

配置格式

matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)

参数说明

参数 说明
x,y 放置文本的位置,默认情况下,是数据坐标
s 文本内容;
fontdict 覆盖默认文本属性的字典,如果为None,则默认值由rcParams确定
**kwargs 常见配置选项:color、fontfamily、fontsize、fontweight、rotation、transform等

官方文档:

matplotlib.pyplot.text

07.坐标轴标签组件

配置格式

xlabel和ylabel的配置格式和参数一致。

matplotlib.pyplot.ylabel(ylabel, fontdict=None, labelpad=None, *, loc=None, **kwargs)

参数配置

参数 说明
ylabe 字符串,y-axis说明
labelpad 与轴边界框(包括记号和记号标签)的点间距。如果为“无”,则上一个值保持原样
loc ‘bottom’, ‘center’, ‘top’,默认’center’
**kwargs 文本属性控制标签的外观,可以参考Text属性

官方文档:

matplotlib.pyplot.ylabel

08.网格组件

配置格式

matplotlib.pyplot.grid(visible=None, which=‘major’, axis=‘both’, **kwargs)

参数配置

参数 说明
visible 是否显示网格线,选项:bool or None
which 要更改的网格线
axis {‘both’, ‘x’, ‘y’}
**kwargs 文本属性控制标签的外观,可以参考Text属性

官方文档:

matplotlib.pyplot.grid

09.绘制折线

配置格式

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

参数配置

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
参数 说明
x 传入序列、列表类型的对象,包含各个点的横坐标数值,默认为 0~len(y)-1
y 传入序列、列表类型的对象,包含各个点的纵坐标数值
fmt 传入一个字符串,代表所绘制线条的样式(按颜色、点型、线型顺序)1
data 关键字参数,传入一个具有索引功能的对象,此时 x、y 只需传入一个字符串来表示是该对象的这个索引

kwargs 中常用参数:

参数 说明
color 设置线条的颜色,可用十六进制的RGB字符串精确设置颜色
label 设置线条的标签

fmt 参数用法

fmt 参数传入一个字符串,按颜色、点型、线型的顺序拼接而成。

颜色(可用 color 参数代替):

字符串 含义
‘b’ blue 蓝色
‘g’ green 绿
‘r’ red 红
‘c’ cyan 蓝绿
‘m’ magenta 洋红
‘y’ yellow 黄
‘k’ black 黑
‘w’ white 白

点型(可用 marker 参数代替)

字符串 含义
‘.’ point marker
‘,’ pixel marker
‘o’ circle marker
‘v’ triangle_down marker
‘^’ triangle_up marker
‘<’ triangle_left marker
‘>’ triangle_right marker
‘1’ tri_down marker
‘2’ tri_up marker
‘3’ tri_left marker
‘4’ tri_right marker
‘s’ square marker
‘p’ pentagon marker
‘*’ star marker
‘h’ hexagon1 marker
‘H’ hexagon2 marker
‘+’ plus marker
‘x’ x marker
‘D’ diamond marker
‘d’ thin_diamond marker
竖线 vline marker
‘_’ hline marker

线型(可用 linestyle 参数代替):

字符串 含义
‘-’ solid line style 实线
‘–’ dashed line style 虚线
‘-.’ dash-dot line style 点画线
‘:’ dotted line style 点

官方文档:

matplotlib.pyplot.plot

10.图例组件

配置格式

matplotlib.pyplot.legend(*args, **kwargs)

参数配置

legend()
legend(handles, labels)
legend(handles=handles)
legend(labels)

官方文档:

matplotlib.pyplot.legend

11.图表渲染

显示所有的图形。

matplotlib.pyplot.show(*, block=None)


总结

Matplotlib的基础选项属性以官网为准https://matplotlib.org/stable/api/pyplot_summary.html,由于是英文缘故,在实际学习和开发过程中,需要尽量多实践多练习。

猜你喜欢

转载自blog.csdn.net/weixin_41290949/article/details/128761262