绘图工具及其主要特性
内容提要
本文介绍Python绘图库,包括Matplotlib、Seaborn、ProPlot和SciencePlots,重点讲解Matplotlib的图形元素:画布、坐标图形、坐标轴和刻度,并分为原始类与容器类元素,统称艺术对象,通常绑定于坐标图形,不可跨区共享。
延伸解读
Matplotlib 图形元素的两类划分
文章将 Matplotlib 的图形元素分为原始类(primitive)和容器类(container)。原始类包括点、线、文本、网格、标题、图例等基本绘图单元;容器类则是由一个或多个原始类元素组成的集合,主要包括画布、坐标图形、坐标轴和刻度。这种分类有助于理解 Matplotlib 的层次结构,容器类元素为原始类元素提供组织和布局的框架。
画布与坐标图形的角色差异
画布(figure)是 Matplotlib 的基础图形元素,代表整个绘图区域,可包含多个子区域(subplot),并允许设置尺寸、分辨率和背景色等参数。坐标图形(axes)则是实际绘制数据的核心区域,通常一个画布包含一个坐标图形,由四条边框(spine)及其他元素构成。理解二者区别有助于合理组织绘图结构。
坐标轴与刻度的控制机制
坐标轴(axis)是数据轴对象,每个轴包含一个定位器(locator)和一个格式化器(formatter),分别控制刻度的位置和显示格式。刻度(tick)对象分为主刻度和副刻度,以及对应的刻度标签。每个坐标图形都有水平 X 轴和垂直 Y 轴,通过调整定位器和格式化器可以精细控制刻度的呈现方式。
艺术对象的绑定与共享限制
原始类元素和容器类元素在 Matplotlib 中统称为艺术对象(artist)。通常情况下,艺术对象绑定到特定的坐标图形(axes)对象,不能与其他坐标图形共享,也不能从一个坐标图形区域移动到另一个区域。这一限制意味着每个坐标图形需要独立管理自己的艺术对象,在绘制多子图时需注意分别设置。
Q&A
Python有哪些常用的绘图库?
Python有多个第三方绘图库,包括基础绘图库Matplotlib、统计分析可视化库Seaborn、科学绘图库ProPlot和科学绘图主题库SciencePlots。
Matplotlib的主要图形元素有哪些?
Matplotlib的主要图形元素包括画布(figure)、坐标图形(axes)、坐标轴(axis)和艺术对象(artist)。其中坐标图形包含图名、刻度、刻度标签、轴标签、边框、图例、网格、线条和数据标记等图层属性。
Matplotlib中的原始类元素和容器类元素分别指什么?
原始类元素包括点、线、文本、网格、标题、图例等;容器类元素是指一个或多个原始类元素的集合,主要包括画布、坐标图形、坐标轴和刻度。
Matplotlib中画布(figure)的作用是什么?
画布是Matplotlib的基本图形元素,代表绘图本身,可以包含多个图形艺术对象(如图例、图名、数据标记),并可划分为多个子区域,每个子区域可绘制单独的图形(子图)。用户可以在画布上设置大小(figsize)、分辨率(dpi)、背景颜色等参数。
坐标图形(axes)在Matplotlib中扮演什么角色?
坐标图形也称为子图,是Matplotlib的绘图核心,主要提供用于绘制数据的显示区域,并包含构成图形的许多艺术对象。大多数情况下,一个画布对象包含一个子图区域,子图区域由上下左右四个边框以及其他组成元素构成。
Matplotlib中的坐标轴(axis)和刻度(tick)是什么?
坐标轴是数据轴对象,即坐标轴线,每个轴对象包含一个定位器对象和一个格式化器对象,分别用于控制坐标轴刻度的位置和格式。刻度是刻度对象,每个坐标图形有水平X轴和垂直Y轴,每个坐标轴包含刻度对象,刻度对象包括主刻度、次刻度、主刻度标签和次刻度标签。
Matplotlib中的艺术对象(artist)有什么特点?
原始类元素和容器类元素在Matplotlib库中统称为艺术对象。通常情况下,艺术对象绑定到坐标图形对象,不能被其他或多个坐标图形对象共享,也不能从一个坐标图形区域移动到另一个坐标图形区域。