Matplotlib 库是一个用于数据可视化和绘图的 Python 库。
它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。

使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。
难点在于对绘制的图形进行调整,这些调整包括:

  1. 图形的大小
  2. 多个图形的组合
  3. 坐标轴的方向,刻度的精度
  4. 图形的颜色和字体

等等。

进行这些调整需要对 Matplotlib 的绘图机制和其中的主要元素有个整体的了解。
本篇首先整体介绍下Matplotlib绘制的图形中的主要元素,然后重点介绍下其中第一个重要的元素--画布

1. 主要元素

下面绘制一个简单的图形来演示Matplotlib绘图时的主要元素。

import numpy as np

import matplotlib
import matplotlib.pyplot as plt %matplotlib inline #绘制一个展示主要元素的图
x = np.array(range(0, 8))
y1 = np.sin(x) fig = plt.figure()
fig.set_size_inches(10,4)
fig.set_facecolor('lightgreen')
fig.suptitle("整个图形的总标题")
fig.subplots_adjust(wspace=0.3) ax1 = fig.add_subplot(121)
ax1.plot(x, y1)
ax1.set_title("图1 标题")
ax1.set_xlabel("图1--x轴")
ax1.set_ylabel("图1--y轴") ax2 = fig.add_subplot(122)
y2 = np.cos(x)
ax2.plot(x, y1)
ax2.plot(x, y2)
ax2.set_title("图2 标题")
ax2.set_xlabel("图2--x轴")
ax2.set_ylabel("图2--y轴")
ax2.legend(labels=["sin", "cos"]) fig.show()


上例中,我们绘制了2个子图。
主要的元素包括,图形的大小,图形的标题(主标题和子图标题),坐标轴(轴标签和刻度),图例,子图中曲线(这里可以根据情况换成其他图形,比如柱状图,散点图等等)。

上面的示例代码不用太关心,这里只是为了显示Matplotlib的主要元素。
后续的文章会介绍各个主要元素的常用属性,最终的目的是能够灵活的绘制出符合显示要求的图形,而不仅仅只是绘制出图形。

本篇介绍的主要元素是画布

2. 画布

画布是其他所有的元素的载体,可以说是最重要,也是最容易被忽视的元素。
绘制图形之前,第一件事就是创建画布

2.1. 主要属性

创建画布之后,一般主要用到的属性是调整画布的大小颜色
Matplotlib画布的大小通过设置英寸和dpi来实现,dpi表示一英寸有多少像素。

2.1.1. 画布大小

比如下面的示例:

fig = plt.figure(figsize=[6, 3], dpi=100)
fig.suptitle("标题")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)

修改dpi=200,图形明显变大和清晰。

fig = plt.figure(figsize=[6, 3], dpi=200)

2.1.2. 画布颜色

除了大小,设置画布颜色也是比较常用的。
颜色主要有两种,背景色和边框颜色(默认的边框宽度是0,所以要设置边框颜色时,别忘了设置边框的宽度)。
比如:下面示例设置了背景色浅绿色,边框宽度10,颜色红色

fig = plt.figure(facecolor="lightgreen",
edgecolor="red",
linewidth=10)
fig.suptitle("标题")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)

2.2. 主要方法

除了属性,画布还有几个方法也是经常使用的。

2.2.1. 设置标题

上面的示例中已经包含了,也就是 suptitle() 方法。

2.2.2. 添加子图

添加子图用 add_subplot() 方法,这个方法的参数一般是三个数组 xyz
x表示有几行,y表示有几列,z表示是第一个子图。
比如:一行两列2个图

fig = plt.figure()

fig.add_subplot(121)
fig.add_subplot(122)

比如:2行一列2个图:

fig = plt.figure()

fig.add_subplot(211)
fig.add_subplot(212)

比如:2行2列4个图:

fig = plt.figure()

fig.add_subplot(221)
fig.add_subplot(222)
fig.add_subplot(223)
fig.add_subplot(224)

2.2.3. 保存图像

画布还有个重要的功能就是把显示的图形保存下来,即 savefig() 方法。
可以把绘制的图形保存到磁盘,用于分享或者制作报告。

fig.savefig("d:/share/image.png")

3. 总结回顾

画布让我们可以整体上设置图形的质量和排版,分析和作图过程中虽然不用过多考虑它,但是最终如果要出报告和文档时,画布的设置就会变得重要。

画布是绘图的第一步,接下来这个系列会逐步介绍 Matplotlib的其他主要元素。

【matplotlib基础】--画布的更多相关文章

  1. Matplotlib基础知识

    Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 ...

  2. Matplotlib基础使用

    matplotlib 一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度 ...

  3. 数据分析与展示——Matplotlib基础绘图函数示例

    Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...

  4. HTML5 Canvas(画布)实战编程初级篇:基本介绍和基础画布元素

    欢迎大家阅读HTML5 Canvas(画布)实战编程初级篇系列,在这个系列中,我们将介绍最简单的HTML5画布编程.包括: 画布元素 绘制直线 绘制曲线 绘制路径 绘制图形 绘制颜色,渐变和图案 绘制 ...

  5. Matplotlib基础图形之散点图

    Matplotlib基础图形之散点图 散点图特点: 1.散点图显示两组数据的值,每个点的坐标位置由变量的值决定 2.由一组不连续的点组成,用于观察两种变量的相关性(正相关,负相关,不相关) 3.例如: ...

  6. matplotlib基础

    Matplotlib 基础 注:本文中的程序都默认引入了numpy库和matplotlib库,并且分别简写为np与plt:如果读者不知道怎么使用numpy库,可以移步到这一博客上进行简单的学习 一.简 ...

  7. 模块简介与matplotlib基础

    模块简介与matplotlib基础 1.基本概念 1.1数据分析 对已知的数据进行分析,提取出一些有价值的信息. 1.2数据挖掘 对大量的数据进行分析与挖掘,得到一些未知的,有价值的信息. 1.3数据 ...

  8. [笔记]SciPy、Matplotlib基础操作

    NumPy.SciPy.Matplotlib,Python下机器学习三大利器.上一篇讲了NumPy基础操作,这节讲讲SciPy和Matplotlib.目前接触到的东西不多,以后再遇到些比较常用的再更新 ...

  9. 第二周 数据分析之展示 Matplotlib基础绘图函数实例

    Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...

  10. matplotlib基础知识全面解析

    图像基本知识: 通常情况下,我们可以将一副Matplotlib图像分成三层结构: 1.第一层是底层的容器层,主要包括Canvas.Figure.Axes: 2.第二层是辅助显示层,主要包括Axis.S ...

随机推荐

  1. Windows 安装ActiveMq5.16.6

    Windows 安装ActiveMq5.16.6 前言 最近因为需要在项目中使用MQ,所以就想在我的老Windows机器上装个ActiveMq. 1. 下载安装 先到Activemq官网下载安装需要版 ...

  2. 从 pheatmap 无缝迁移至 ComplexHeatmap

    pheatmap 是一个非常受欢迎的绘制热图的 R 包.ComplexHeatmap 包即是受之启发而来.你可以发现Heatmap()函数中很多参数都与pheatmap()相同.在 pheatmap  ...

  3. Linux 中 3 个文件打包上传和下载相关命令详解

    tar 命令 通过 SSH 访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的tar是麻雀虽小,五脏俱全,功能强大. 使用t ...

  4. 【Python&目标识别】labelimg报错IndexError: list index out of range

            博主在使用labelimg选取深度学习样本时,命令行报错IndexError: list index out of range,几经周折终于解决了,所以跟大家分享一下.         ...

  5. 手动删除了Linux下syslog--/var/log/messages怎么办?

    引言 Linux小白很容易犯得一个错误就是:查看日志的时候,尤其是系统日志,由于日志太多,把系统日志手动删除了.也就是把/var/log/messages文件删除了,而不是删除文件的内容.直接删除文件 ...

  6. google colab使用体验

    复现的TRSSL 的代码似乎是python3.8的,在本地跑电脑带不起来,即时把处理图形数改为1 但是colab用3.8不太好下载包, 因此直接上了3.9 除了一些库没有意外,遇到了一点小问题: Ca ...

  7. SpringBoot 拦截器 & 过滤器

    拦截器 Java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Ac ...

  8. 据说,Transformer 不能有效地进行时间序列预测?

    简介 几个月前,我们介绍了 Informer 这个模型,相关论文 (Zhou, Haoyi, et al., 2021) 是一篇获得了 AAAI 2021 最佳论文奖的时间序列论文.我们也展示了一个使 ...

  9. 2 opencv-python核心库模块core

    core模块定义了opencv中的基础数据结构和基础运算,是整个库的核心模块.而mat数据结构是opencv中最重要的数据结构,是opencv中图像最常用的存储格式. 1 基本数据结构 opencv的 ...

  10. iOS CoreData总结

    相关主要类: NSManagedObjectContext 管理对象,上下文,持久性存储模型对象,处理数据与应用的交互 NSManagedObjectModel 被管理的数据模型,数据结构 NSPer ...