matplotlib.pyplot#

matplotlib.pyplot 是 Matplotlib 的基于状态的接口。它提供了一种隐式、类似 MATLAB 的绘图方式。它还在屏幕上打开图,并充当图 GUI 管理器。

pyplot 主要用于交互式绘图和简单的程序化图生成情况。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()

对于复杂的绘图,推荐使用显式面向对象的 API,尽管 pyplot 通常仍用于创建图和图中的 Axes 坐标系。请参阅 pyplot.figurepyplot.subplotspyplot.subplot_mosaic 来创建图,并参阅 Axes API 以了解 Axes 上的绘图方法。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()

有关隐式和显式接口之间权衡的解释,请参阅 Matplotlib 应用程序接口 (APIs)

管理图和坐标系#

坐标轴

向当前图添加一个 Axes 坐标系并将其设为当前 Axes 坐标系。

cla

清除当前 Axes 坐标系。

clf

清除当前图。

close

关闭图窗口,并从 pyplot 中注销。

delaxes

从其图中断开并移除一个 Axes 坐标系(默认为当前 Axes 坐标系)。

fignum_exists

返回给定 ID 的图是否存在。

figure

创建新图,或激活现有图。

gca

获取当前 Axes。

gcf

获取当前图。

get_figlabels

返回现有图标签的列表。

get_fignums

返回现有图编号的列表。

sca

将当前 Axes 坐标系设置为 *ax*,并将当前图设置为 *ax* 的父级。

subplot

向当前图添加 Axes 坐标系或检索现有 Axes 坐标系。

subplot2grid

在规则网格内的特定位置创建子图。

subplot_mosaic

根据 ASCII 艺术或嵌套列表构建 Axes 布局。

subplots

创建一个图和一组子图。

twinx

创建并返回一个共享 *x* 轴的第二个 Axes 坐标系。

twiny

创建并返回一个共享 *y* 轴的第二个 Axes 坐标系。

向绘图添加数据#

基本#

plot

将 y 对 x 绘制为线和/或标记。

errorbar

将 y 对 x 绘制为带有误差线的线和/或标记。

散点图

*y* 对 *x* 的散点图。

plot_date

[已弃用] 绘图时强制轴将浮点数视为日期。

step

绘制阶梯图。

loglog

绘制 x 轴和 y 轴均采用对数刻度的图。

semilogx

绘制 x 轴采用对数刻度的图。

semilogy

绘制 y 轴采用对数刻度的图。

fill_between

填充两条水平曲线之间的区域。

fill_betweenx

填充两条垂直曲线之间的区域。

bar

绘制条形图。

barh

绘制水平条形图。

bar_label

为条形图添加标签。

stem

创建一个茎叶图。

eventplot

在给定位置绘制相同的平行线。

pie

绘制饼图。

stackplot

绘制堆叠面积图或流线图。

broken_barh

绘制一系列水平矩形。

vlines

在每个 x 处绘制从 yminymax 的垂直线。

hlines

在每个 y 位置从 xminxmax 绘制水平线。

fill

绘制填充多边形。

polar

创建极坐标图。

跨度#

axhline

添加一条水平线,跨越 Axes 的全部或部分。

axhspan

在 Axes 上添加一个水平跨度(矩形)。

axvline

添加一条垂直线,跨越整个或部分坐标轴。

axvspan

在 Axes 上添加一个垂直跨度(矩形)。

axline

添加一条无限长的直线。

光谱#

acorr

绘制 x 的自相关。

angle_spectrum

绘制角度谱。

cohere

绘制 *x* 和 *y* 之间的相干性。

csd

绘制交叉谱密度。

magnitude_spectrum

绘制幅度谱。

phase_spectrum

绘制相位谱。

psd

绘制功率谱密度。

specgram

绘制频谱图。

xcorr

绘制 xy 之间的互相关。

统计#

ecdf

计算并绘制 x 的经验累积分布函数。

boxplot

绘制箱线图。

violinplot

绘制小提琴图。

分箱#

hexbin

绘制点 x, y 的 2D 六边形分箱图。

hist

计算并绘制直方图。

hist2d

绘制 2D 直方图。

stairs

绘制阶梯状常数函数,作为线条或填充图。

等高线#

clabel

为等高线图添加标签。

contour

绘制等高线。

contourf

绘制填充等高线。

二维数组#

imshow

将数据显示为图像,即在 2D 规则栅格上。

matshow

在新图窗口中将二维数组显示为矩阵。

pcolor

创建一个带有非规则矩形网格的伪彩色图。

pcolormesh

创建一个带有非规则矩形网格的伪彩色图。

spy

绘制 2D 数组的稀疏模式。

figimage

向图形添加非重采样图像。

非结构化三角形#

triplot

将非结构化三角形网格绘制为线和/或标记。

tripcolor

创建一个非结构化三角网格的伪彩色图。

tricontour

在非结构化三角形网格上绘制等高线。

tricontourf

在非结构化三角形网格上绘制等高线区域。

文本和注释#

annotate

用文本 text 注释点 xy

text

向坐标系中添加文本。

figtext

向图形添加文本。

table

Axes 添加表格。

arrow

[已弃用] 向 Axes 添加箭头。

figlegend

在图形上放置图例。

legend

在 Axes 上放置图例。

矢量场#

barbs

绘制 2D 风矢图。

quiver

绘制 2D 箭头场。

quiverkey

为quiver图添加图例。

streamplot

绘制矢量流的流线。

坐标系配置#

autoscale

将轴视图自动缩放至数据(切换)。

axis

获取或设置某些轴属性的便捷方法。

box

打开或关闭当前 Axes 坐标系的边框。

grid

配置网格线。

locator_params

控制主要刻度定位器的行为。

minorticks_off

从 Axes 中移除次刻度。

minorticks_on

在 Axes 上显示次刻度。

rgrids

获取或设置当前极坐标图上的径向网格线。

thetagrids

获取或设置当前极坐标图上的角度网格线。

tick_params

更改刻度、刻度标签和网格线的显示。

ticklabel_format

配置线性 Axes 坐标系默认使用的 ScalarFormatter

xlabel

设置 x 轴的标签。

xlim

获取或设置当前 Axes 坐标系的 x 限制。

xscale

设置 x 轴的比例。

xticks

获取或设置 x 轴的当前刻度位置和标签。

ylabel

设置 y 轴的标签。

ylim

获取或设置当前 Axes 坐标系的 y 限制。

yscale

设置 y 轴的比例。

yticks

获取或设置 y 轴的当前刻度位置和标签。

suptitle

向图形添加一个居中的总标题。

title

为 Axes 设置标题。

布局#

margins

设置或检索数据周围的边距,用于自动缩放轴限制。

subplots_adjust

调整子图布局参数。

subplot_tool

启动一个图的子图工具窗口。

tight_layout

调整子图之间和周围的填充。

颜色映射#

clim

设置当前图像的颜色限制。

colorbar

向绘图添加一个颜色条。

gci

获取当前可着色艺术家。

sci

设置当前图像。

get_cmap

获取颜色映射实例,如果 *name* 为 None,则默认为 rc 值。

set_cmap

设置默认颜色映射,并将其应用于当前图像(如果有)。

imread

从文件读取图像到数组。

imsave

对数组进行颜色映射并将其保存为图像文件。

颜色映射可通过颜色映射注册表 matplotlib.colormaps 获得。为方便起见,此注册表在 pyplot 中可用,如下:

matplotlib.pyplot.colormaps[source]#

已知 Matplotlib 命名的色彩映射容器。

通用注册表实例是 matplotlib.colormaps。用户无需自行实例化 ColormapRegistry

读取访问使用类似字典的接口,将名称映射到 Colormap

import matplotlib as mpl
cmap = mpl.colormaps['viridis']

返回的 Colormap 是副本,因此对其的修改不会改变颜色映射的全局定义。

可通过 ColormapRegistry.register 添加其他颜色映射。

mpl.colormaps.register(my_colormap)

要获取所有注册色彩映射的列表,您可以执行以下操作:

from matplotlib import colormaps
list(colormaps)

此外,还有设置内置颜色映射的快捷函数;例如,plt.viridis() 等同于 plt.set_cmap('viridis')

matplotlib.pyplot.color_sequences[source]#

已知 Matplotlib 命名的颜色序列容器。

通用注册表实例是 matplotlib.color_sequences。用户无需自行实例化 ColorSequenceRegistry

读访问使用类似字典的接口,将名称映射到颜色列表。

import matplotlib as mpl
colors = mpl.color_sequences['tab10']

有关内置颜色序列的列表,请参阅 命名颜色序列。返回的列表是副本,因此对其的修改不会改变颜色序列的全局定义。

可通过 ColorSequenceRegistry.register 添加其他颜色序列。

mpl.color_sequences.register('rgb', ['r', 'g', 'b'])

配置#

rc

设置当前的 rcParams。*group* 是 rc 的分组,例如,对于 lines.linewidth,组是 lines;对于 axes.facecolor,组是 axes,等等。*group* 也可以是组名称的列表或元组,例如 (*xtick*, *ytick*)。*kwargs* 是一个字典属性名/值对,例如::。

rc_context

返回一个用于临时更改 rcParams 的上下文管理器。

rcdefaults

从 Matplotlib 的内部默认样式恢复 rcParams

输出#

draw

重新绘制当前图。

draw_if_interactive

如果在交互模式下,重新绘制当前图。

ioff

禁用交互模式。

ion

启用交互模式。

install_repl_displayhook

连接到当前 shell 的显示挂钩。

isinteractive

返回是否在每次绘图命令后更新绘图。

pause

运行 GUI 事件循环 interval 秒。

savefig

将当前图形保存为图像或矢量图形文件。

显示

显示所有打开的图形。

switch_backend

设置 pyplot 后端。

uninstall_repl_displayhook

断开与当前 shell 的显示挂钩的连接。

其他#

connect

将函数 func 绑定到事件 s

disconnect

断开 ID 为 cid 的回调。

findobj

查找 artist 对象。

get

返回 Artist 的 *property* 值,或打印所有属性。

getp

返回 Artist 的 *property* 值,或打印所有属性。

get_current_fig_manager

返回当前图的图管理器。

ginput

与图形交互的阻塞调用。

new_figure_manager

创建一个新的图形管理器实例。

set_loglevel

配置 Matplotlib 的日志级别。

setp

设置 Artist 的一个或多个属性,或列出允许的值。

waitforbuttonpress

与图形交互的阻塞调用。

xkcd

打开 xkcd 草图样式绘图模式。