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)

虽然通常使用 pyplot 来创建图形和图形的 Axes,但对于复杂的绘图,建议使用显式的面向对象 API。参见 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)

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

管理图形和坐标轴#

axes

在当前图形中添加一个坐标轴,并使其成为当前坐标轴。

cla

清除当前的 Axes。

clf

清除当前图形。

close

关闭图形窗口。

delaxes

从其图形中移除一个 `~.axes.Axes`(默认为当前的 Axes)。

fignum_exists

返回具有给定id的图形是否存在。

figure

创建一个新图形,或激活一个现有图形。

gca

获取当前的 Axes。

gcf

获取当前图形。

get_figlabels

返回现有图形标签的列表。

get_fignums

返回现有图形编号的列表。

sca

将当前的 Axes 设置为 ax,并将当前的 Figure 设置为 ax 的父级。

subplot

向当前图形添加一个轴,或检索一个现有的轴。

subplot2grid

在常规网格内的特定位置创建一个子图。

subplot_mosaic

基于ASCII艺术或嵌套列表构建Axes布局。

subplots

创建一个图形和一组子图。

twinx

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

twiny

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

向图表添加数据#

基本#

plot

绘制 y 相对于 x 的线条和/或标记。

errorbar

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

scatter

散点图 y 对比

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

在从 xminxmax 的每个 y 处绘制水平线。

fill

绘制填充多边形。

polar

制作一个极坐标图。

跨度#

axhline

添加一条横跨整个或部分 Axes 的水平线。

axhspan

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

axvline

添加一条贯穿整个或部分 Axes 的垂直线。

axvspan

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

axline

添加一条无限长的直线。

光谱#

acorr

绘制 x 的自相关图。

angle_spectrum

绘制角度频谱。

cohere

绘制 xy 之间的连贯性。

csd

绘制交叉谱密度。

magnitude_spectrum

绘制幅度谱。

phase_spectrum

绘制相位谱。

psd

绘制功率谱密度。

specgram

绘制频谱图。

xcorr

绘制 xy 之间的互相关。

统计#

ecdf

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

boxplot

绘制一个箱线图。

violinplot

制作一个小提琴图。

分箱#

hexbin

绘制点 x, y 的二维六边形分箱图。

hist

计算并绘制直方图。

hist2d

制作一个二维直方图。

stairs

绘制一个分段常数函数作为线条或填充图。

轮廓#

clabel

标注等高线图。

contour

绘制等高线。

contourf

绘制填充等高线。

二维数组#

imshow

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

matshow

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

pcolor

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

pcolormesh

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

spy

绘制二维数组的稀疏模式。

figimage

向图形中添加一个未重采样的图像。

非结构化三角形#

triplot

绘制一个非结构化的三角形网格作为线条和/或标记。

tripcolor

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

tricontour

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

tricontourf

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

文本和注释#

annotate

用文本 text 标注点 xy

text

向 Axes 添加文本。

figtext

添加文本到图形。

table

Axes 添加一个表格。

arrow

在Axes中添加一个箭头。

figlegend

在图上放置一个图例。

legend

在Axes上放置一个图例。

矢量场#

barbs

绘制风羽的二维场。

quiver

绘制一个二维箭头场。

quiverkey

向箭袋图添加一个键。

streamplot

绘制矢量流的流线。

轴配置#

autoscale

自动缩放轴视图以适应数据(切换)。

axis

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

box

在当前的Axes上打开或关闭Axes框。

grid

配置网格线。

locator_params

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

minorticks_off

从 Axes 中移除次要刻度。

minorticks_on

在 Axes 上显示次要刻度。

rgrids

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

thetagrids

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

tick_params

更改刻度、刻度标签和网格线的外观。

ticklabel_format

配置默认用于线性轴的 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[源代码]#

包含已知名称的 colormap 的容器,这些 colormap 被 Matplotlib 识别。

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

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

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[源代码]#

包含已知名称的颜色序列的容器。

通用注册表实例是 matplotlib.color_sequences。用户不需要自己实例化 ColorSequenceRegistry

读取访问使用了一个类似字典的接口,将名称映射到颜色列表:

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

返回的列表是副本,因此它们的修改不会改变颜色序列的全局定义。

可以通过 ColorSequenceRegistry.register 添加额外的颜色序列:

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

配置#

rc

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

rc_context

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

rcdefaults

恢复 Matplotlib 内部默认样式的 rcParams

输出#

draw

重新绘制当前图形。

draw_if_interactive

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

ioff

禁用交互模式。

ion

启用交互模式。

install_repl_displayhook

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

isinteractive

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

pause

运行GUI事件循环 interval 秒。

savefig

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

show

显示所有打开的图形。

switch_backend

设置 pyplot 后端。

uninstall_repl_displayhook

断开当前shell的显示钩子。

其他#

connect

将函数 func 绑定到事件 s

disconnect

断开与ID为 cid 的回调的连接。

findobj

查找艺术家对象。

get

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

getp

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

get_current_fig_manager

返回当前图形的图形管理器。

ginput

阻塞调用以与图形交互。

new_figure_manager

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

set_loglevel

配置 Matplotlib 的日志级别。

setp

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

waitforbuttonpress

阻塞调用以与图形交互。

xkcd

开启 xkcd 素描风格绘图模式。