数据可视化库 matplotlib 入门 1——安装与配置、常用套路与绘图组件

Matplotlib 是一个非常强大的 Python 绘图库,我们可以使用它将很多数据通过各种静态、动态、交互式图表的形式直观的呈现出来,比如:线图、散点图、条形图、饼图、3D 图形、图形动画等等,并且提供多样化的输出格式。Matplotlib 通常与 NumPy 和 Pandas 等库一起使用, 形成一个强大的科学计算环境,有助于我们通过 Python 学习数据科学、机器学习。
同 Pandas 一样,笔者从本篇开始通过若干篇短文对 matplotlib 经常会用到的函数、方法进行梳理总结。由于 matplotlib 库内容很多、细节很丰富,而我们使用该库方式又常常是根据实际需要临时查阅具体函数,包括具体参数,拿过来用就可以了,所以文章内容将不会很全面,仅提供常用的绘图方式方法。更全面详细的内容可参阅 matplotlib 官网,这里有丰富的案例、用户文档、教程。
本文先介绍 matplotlib 库的安装与配置,常用套路和绘图组件。

matplotlib 库的安装与配置

1、安装

Matplotlib 库的安装很简单,同其他许多 python 库的安装一样,用 pip install matplotlib 命令或者在 Pycharm 中进行连网下载安装即可。需要注意的是,matplotlib 的依赖库包括 numpy、cycler、Pillow、packaging、pyparsing、python-dateutil、fonttools、contourpy、kiwisolver,需要预先安装,不过只要连网后都会自动下载安装。

2、配置

Matplotlib 配置信息是从配置文件中读取的,在配置文件中可以为 matplotlib 几乎所有的属性指定永久有效的默认值。查看和修改配置方法如下,这里重点要设置一下中文的显示,避免画图出现乱码。

import matplotlib as mp

mp.__version__    # 查看 matplotlib 的版本,笔者用的是 '3.6.2' 版本
mp.rcParams       # 通过字典查看所有已经加载的配置项
mp.rcParams['lines.color']              # 通过 rcParams 字典查看配置项,笔者这里返回'C0'
mp.rcParams['lines.color'] = 'r'        # 可通过 rcParams 字典修改配置项
help(mp.rc)                             # 通过 help 函数查看帮助文档
mp.rc('lines', linewidth=2, color='r')  # 与 rcParams['lines.linewidth'] = 2 和 rcParams['lines.color'] = 'r' 等价

mp.get_configdir()      # 获取当前用户的配置文件目录,'C:\\Users\\DX3906\\.matplotlib'
mp.matplotlib_fname()   # 查看当前使用的配置文件的路径,'C:\\Python38\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'

mp.rcParams['font.sans-serif'] = ['SimHei']   # 为了支持中文显示而设置
mp.rcParams['axes.unicode_minus'] = False     # 同上

配置文件的内容常见的有以下几种:

  • axes:设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示。
  • backend:设置目标输出 TkAgg 和 GTKAgg。
  • figure:控制dpi、边界颜色、图像大小和子区(subplot)设置。
  • font:字体(font family)、字体大小和样式设置。
  • grid:设置网格颜色和线型。
  • legend:设置图例以及其中的文本显示。
  • line:设置线条(颜色、线型、宽度等)和标记。
  • patch:填充2D图形图像,如:多边形和圆,控制线宽、颜色、抗锯齿等。
  • savefig:对保存的图形进行单独设置,如:渲染的文件背景为白色。
  • text:设置字体颜色、文本解析(纯文本和 latex 标记)等。
  • verbose:设置 matplotlib 执行期间的信息输出。
  • xticks 和 yticks:为x、y轴主刻度和次刻度设置颜色、大小、方向及标签大小。

matplotlib 库的常用套路和绘图组件

1、常用套路

Matplotlib 库的使用是有常用套路方法的,其步骤如下:

  1. 创建一个 Figure 实例对象 fig,即一块画布
  2. 使用 fig 实例创建一个或者多个 Axes 实例,或者创建一个或者多个 subplot 实例
  3. 使用 Axes 实例的方法来创建 primitive 绘图组件,如:Line2D、Text
  4. 显示图形图像

代码示例如下:

import matplotlib.pyplot as plt       # Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API,模块能够快速地生成图像
import numpy as np
import math

x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()                    # 创建画布 Figure 实例对象
ax = fig.add_axes([0.2,0.1,0.8,0.8])  # 创建 Axes 实例,将绘图域添加到画布,参数 4 个数字分别对应图形的左侧、底部、宽度、高度,必须介于0到1之间
ax.plot(x,y)                          # 使用 Axes 实例的方法来绘图
ax.set_title("sine wave")             # 设置标题
ax.set_xlabel('angle')                # 设置x轴标签
ax.set_ylabel('sine')                 # 设置y轴标签
plt.show()                            # 显示图形

上述代码绘制的图像如下:
正弦波图像

2、绘图组件

在 matplotlib 库中,matplotlib.artist.Artist 类代表了绘图组件,属于高层次的绘图控制,知道如何利用渲染器在绘图区上绘图,我们在绝大部分时候都是与它打交道。该类包括了两种绘图组件:primitive 基础组件,代表了在绘图区域上绘制的 Line2D(如上面例子中的正弦波)、Rectangle、Text(如上面例子中的标题、标签) 以及 AxesImage 等等;container 容器组件,代表了放置primitive 的那些绘图组件,比如 Axis(坐标轴)、Axes(绘图域) 以及 Figure(画布)。具体如图所示:

matplotlib 的绘图组件
每个在图形中出现的元素都是绘图组件(Artist)。其属性有:

  • .alpha属性:透明度。值为0-1之间的浮点数
  • .animated属性:一个布尔值,表示是否用于加速动画绘制
  • .axes属性:返回这个Artist所属的axes,可能为None
  • .clip_box属性:用于剪切Artist的bounding box
  • .clip_on属性:是否开启clip
  • .clip_path属性:Artist沿着该path执行clip
  • .contains属性:一个picking function用于测试Artist是否包含 pick point
  • .figure属性:该Artist所属的Figure,可能为None
  • .gid属性:该Artist的id字符串
  • .label:一个text label
  • .transform:转换矩阵
  • .url属性:一个url string,代表本Artist
  • .visible:布尔值,控制Artist是否绘制
  • .zorder:决定了Artist的绘制顺序,越小就越底层越优先绘制。

可以使用 matplotlib.artist.getp(fig) 来一次获取 fig 的所有属性,使用matplotlib.pyplot.getp(fig,"alpha")来获取属性(一次只能返回一个属性),如果指定属性名,则返回对象的该属性值;如果不指定属性名,则返回对象的所有的属性和值。可以用 matplotlib.pyplot.setp(fig, alpha=0.5, zorder=2) 来设置属性(一次可以设置多个)。

以上。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据可视化是数据科学领域的重要环节,而matplotlib和pyecharts是两个常用数据可视化matplotlib是一个功能强大而灵活的绘图,可以创建各种类型的图表,包括折线图、散点图、柱状图、饼图等。它基于numpy数组进行绘图,可以轻松地处理大量数据。使用matplotlib,我们可以通过简单的几行代码创建出美观而有效的图表,并可以对图表的各个元素进行定制,如颜色、标签、坐标轴等。此外,matplotlib还支持将图表保存为多种格式,包括图片和PDF。 而pyecharts是一个基于echarts的Python,它提供了一种更为高级和便捷的方式来创建交互式数据可视化。echarts是一款流行的JavaScript可视化, 包含多种类型的图表,如折线图、散点图、柱状图、雷达图等,而pyecharts则是将echarts的功能封装在Python中,使得开发人员无需掌握JavaScript,就能够创建出强大的交互式图表。pyecharts提供了一套易用的API,通过简洁的代码可以实现复杂的数据可视化需求。另外,pyecharts也支持将图表导出为HTML、图片或PDF格式。 总而言之,matplotlib和pyecharts是两个非常有用的数据可视化工具,它们分别提供了不同的绘图方式和功能。如果需要创建静态图表,并对其进行更加精细的控制,可以选择使用matplotlib;而如果希望创建交互式的图表,并且对绘图过程更为简便,可以考虑使用pyecharts。同时,学习并掌握这两个,将有助于我们更好地进行数据分析与可视化工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值