(数据分析三板斧)第三斧Matplotlib-第一节:Matplotlib及其三层结构

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(数据分析三板斧)第三斧Matplotlib-第一节:Matplotlib及其三层结构相关的知识,希望对你有一定的参考价值。

文章目录

一:什么是Matplotlib

Matplotlib 是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式

  • Mat是指Matrix:表示矩阵(二维表)
  • plot:画图
  • lib是指library:表示库

不管是Matplotlib、又或者是MatLab,使用他们的一个很大的目的就是为了数据可视化,它可以帮助我们清晰的展示、理解数据

二:实现一个简单的Matplotlib图

代码如下

import matplotlib.pyplot as plt  # 导入
#  matplotlib inline 如果使用jupyter,需要加入


plt.figure()  # 创建一块画布
plt.plot([1, 0, 9], [4, 5, 6])  # 描点画图:(1,4)、(0,5)、(9,6)
plt.show()  # 展示

三:Matplotlib图像结构

Matplotlib绘制出的图像结构、基本要素如下

四:Matplotlib三层结构

Matplotlib所绘制出的图像由三层构成

  • 容器层
  • 辅助显示层
  • 图像层

这部分内容我认为非常重要,把它们之间的逻辑关系理清有助于我们更好的绘图

(1)容器层

容器层是绘图的基础,由以下部分构成

  • 画板层(Canvas):位于最底层(这是一个系统层),用于放置画布(Figure),程序运行后直接就给你显示了一个画板
  • 画布层(Figure):位于Canvas上方(这是一个应用层),可以通过plt.figure()设定画布的大小、分辨率等等, 一个Figure可以划分出多个绘图区域Axes(用户自定,如果你不设定那么一个Figure就一个绘图区)
  • 绘图区/坐标系(Axes):这是数据的绘图区域,可以通过plt.subplots()划分出来。每个Axes上有Axis,也即坐标轴。辅助显示层和图像层均位于其上

因此

  • 一个画布(Figure)可以包含多个坐标系/绘图区(Axes),但是一个Axes只能属于一个Figure
  • 一个坐标系/绘图区(Axes)可以包含多个坐标轴(Axis);如果两个Axis就是二维的

比如

import  matplotlib.pyplot as plt
plt.figure(figsize=(6,6), dpi=80)
plt.figure(1)
ax1 = plt.subplot(221)
plt.plot([1,2,3,4],[4,5,7,8], color="r",linestyle = "--")
ax2 = plt.subplot(222)
plt.plot([1,2,3,5],[2,3,5,7],color="y",linestyle = "-")
ax3 = plt.subplot(212)
plt.plot([1,2,3,4],[11,22,33,44],color="g",linestyle = "-.")

(2)辅助显示层

辅助显示层是为了使图像能够更加直观、更加容易被用户理解,比如PS中的参考线。例如

  • 边框线(spines)
  • 坐标轴(axis)
  • 坐标轴名称(axis label)
  • 坐标轴刻度(tick)
  • 刻度标签(tick label)
  • 网格线(grid)

(3)图像层

图像层指的就是用户通过plotscatterbarpie等绘制出的图像


总的来说

  • Canvas位于最底层,用户不用管
  • Figure建立在Canvas之上
  • Axes建立在Figure之上,可以划分多个
  • axis、legend等辅助显示层以及图像层建立在Axes之上

以上是关于(数据分析三板斧)第三斧Matplotlib-第一节:Matplotlib及其三层结构的主要内容,如果未能解决你的问题,请参考以下文章

(数据分析三板斧)第三斧Matplotlib-第二节:以绘制折线图为例讲解Matplotlib绘图

(数据分析三板斧)第一斧Numpy-第三节:索引和切片

(数据分析三板斧)第一斧Numpy-第三节:索引和切片再练习

Python数据可视化之matplotlib实践 源码 第一篇 入门 第三章

Python数据可视化之matplotlib实践 源码 第一篇 入门 第三章

(数据分析三板斧)第一斧Numpy-第一节:Numpy基本了解