Matplotlib的详细使用及原理(一)

简介: `matplotlib`是Python的数据可视化库,用于生成高质量的2D图形,支持静态、动态和交互式图表。它是pandas和seaborn等库的底层基础。基本绘图通过`pyplot.subplots`创建figure和axes,然后用`plot`函数绘制线条。例如,`plt.plot([1, 2, 3, 4], [1, 4, 2, 3])`可绘制简单折线图。matplotlib有三种API层次,包括FigureCanvas、Renderer和Artist,其中Artist对应具体的图形元素。此外,matplotlib的绘图接口分为显式创建和pyplot隐式创建两种方式。

认识matplotlib


Matplotlib是一个Python 2D绘图库,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。


Matplotlib已经成为python中公认的数据可视化工具,我们所熟知的pandas和seaborn的绘图接口其实也是基于matplotlib所作的高级封装。


一个最简单的绘图例子


Matplotlib的图像是画在figure(如windows,jupyter窗体)上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。最简单的创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可以使用Axes.plot绘制最简易的折线图。


import matplotlib.pyplot as plt
import numpy as np


fig, ax = plt.subplots()  # 创建一个包含一个axes的figure
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])  # 绘制图像



matplotlib.pyplot方法能够直接在当前axes上绘制图像,如果用户未指定axes,matplotlib会帮你自动创建一个。所以上面也可以简化为以下这一行代码。


plt.plot([1, 2, 3, 4], [1, 4, 2, 3]) 


Figure的组成


一个完整的matplotlib图像通常会包括以下四个层级,这些层级也被称为容器


  • Figure:顶层级,用来容纳所有绘图元素


  • Axes:容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成


  • Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素


  • Tick:axis的下属层级,用来处理所有和刻度有关的元素



将通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果


两种绘图接口


matplotlib提供了两种最常用的绘图接口


  1. 显式创建figure和axes,在上面调用绘图方法


  1. 依赖pyplot自动创建figure和axes,并绘图


x = np.linspace(0, 2, 100)
 
fig, ax = plt.subplots()  
ax.plot(x, x, label='linear')  
ax.plot(x, x**2, label='quadratic')  
ax.plot(x, x**3, label='cubic')  
ax.set_xlabel('x label') 
ax.set_ylabel('y label') 
ax.set_title("Simple Plot")  
ax.legend()



采用第二种绘图接口,绘制同样的图:


x = np.linspace(0, 2, 100) # 生成了一个从0到2的数组,包含100个元素
 
plt.plot(x, x, label='linear') 
plt.plot(x, x**2, label='quadratic')  
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()


matplotlib的三层API


matplotlib的基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。

就和人作画的步骤类似:


  1. 准备一块画布或画纸


  1. 准备好颜料、画笔等制图工具


  1. 作画


所以matplotlib有三个层次的API:


matplotlib.backend_bases.FigureCanvas 代表了绘图区,所有的图像都是在绘图区完成的


matplotlib.backend_bases.Renderer 代表渲染器,可以理解为画笔,控制如何在Canvas 上图。


matplotlib.artist.Artist 代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图。


前两者处理程序和计算机的底层交互的事项,第三项Artist就是具体的调用接口来做出我们想要的图,比如图形、文本、线条的设定。



Artist的分类


Artist有两种类型:primitives 和containers。

primitive是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。

container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。


Matplotlib的详细使用及原理(二)+https://developer.aliyun.com/article/1543861?spm=a2c6h.13148508.setting.15.1fa24f0edL5ePi



相关文章
|
3月前
|
Python 容器
Matplotlib的详细使用及原理(三)
这篇文章介绍了如何使用Python的Matplotlib库绘制线条。主要内容包括两种绘制线条的方法:
|
3月前
|
开发者 Python 容器
Matplotlib的详细使用及原理(二)
Matplotlib是一个Python库,用于创建二维和三维图表,它是NumPy的扩展。使用时,首先创建`Figure`实例,然后在其上添加`Axes`或`Subplot`。每个图表元素(如线、散点、直方图)都是一个`Artist`对象,具有属性如`alpha`、`visible`等,可以通过`get_`和`set_`方法进行访问和修改。`Figure`和`Axes`对象都有对应的`patch`属性,分别代表它们的背景矩形。图形中的线条(`Line2D`)是基本要素之一,可配置颜色、线型、宽度等属性。
matplotlib绘图的核心原理讲解(超详细)(二)
matplotlib绘图的核心原理讲解(超详细)(二)
matplotlib绘图的核心原理讲解(超详细)(二)
matplotlib绘图的核心原理讲解(超详细)(一)
matplotlib绘图的核心原理讲解(超详细)(一)
matplotlib绘图的核心原理讲解(超详细)(一)
|
9天前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
33 16
|
1天前
|
数据可视化 数据挖掘 API
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。
|
9天前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
|
22天前
|
数据可视化 物联网 区块链
探索Python中的数据可视化:使用Matplotlib和Seaborn绘制图表探索未来:区块链、物联网与虚拟现实的融合趋势与应用前景
【8月更文挑战第30天】本文旨在引导读者通过Python编程语言,利用Matplotlib和Seaborn库,轻松掌握数据可视化技术。文章以浅显易懂的语言,结合实用的代码示例,从基础的图表绘制到高级定制功能,逐步深入讲解如何在数据分析中运用这些工具。无论你是编程新手还是希望提升可视化技能的开发者,都能在这篇文章中找到有价值的信息,让你的数据“活”起来。
|
22天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python中的数据可视化:使用Matplotlib库绘制图表
【8月更文挑战第30天】数据可视化是数据科学和分析的关键组成部分,它帮助我们以直观的方式理解数据。在Python中,Matplotlib是一个广泛使用的绘图库,提供了丰富的功能来创建各种类型的图表。本文将介绍如何使用Matplotlib库进行数据可视化,包括安装、基本概念、绘制不同类型的图表以及自定义图表样式。我们将通过实际代码示例来演示如何应用这些知识,使读者能够轻松地在自己的项目中实现数据可视化。
|
2月前
|
数据可视化 数据挖掘 Python
数据界的颜值担当!Python数据分析遇上Matplotlib、Seaborn,可视化美出新高度!
【7月更文挑战第24天】在数据科学领域,Python的Matplotlib与Seaborn将数据可视化升华为艺术,提升报告魅力。Matplotlib作为基石,灵活性强,新手友好;代码示例展示正弦波图的绘制与美化技巧。Seaborn针对统计图表,提供直观且美观的图形,如小提琴图,增强数据表达力。两者结合,创造视觉盛宴,如分析电商平台销售数据时,Matplotlib描绘趋势,Seaborn揭示类别差异,共塑洞察力强的作品,使数据可视化成为触动人心的艺术。
47 7