matplotlib.table#

表格绘制。

注意

Matplotlib 中的表格实现维护较少。如果需要功能更丰富的表格实现,您可以尝试 blume

使用工厂函数 table 从文本创建现成的表格。如果需要更多控制,请使用 Table 类及其方法。

表格由单元格网格组成,按(行,列)索引。单元格 (0, 0) 位于左上方。

感谢 John Gill 提供了此类别和表格。

class matplotlib.table.Cell(xy, width, height, *, edgecolor='k', facecolor='w', fill=True, text='', loc='right', fontproperties=None, visible_edges='closed')[source]#

基类:Rectangle

单元格是带有相关 TextRectangle

作为用户,您很可能不会自己创建单元格。相反,您应该使用 table 工厂函数或 Table.add_cell

参数:
xy2元组

单元格左下角的位置。

width浮点数

单元格宽度。

height浮点数

单元格高度。

edgecolor颜色,默认值:'k'

单元格边框的颜色。

facecolor颜色,默认值:'w'

单元格填充色。

fill布尔值,默认值:True

单元格背景是否填充。

text字符串,可选

单元格文本。

loc{'right', 'center', 'left'}

文本在单元格内的对齐方式。

fontpropertiesdict, 可选

一个字典,定义文本的字体属性。支持的键和值是 FontProperties 接受的关键字参数。

visible_edges{'closed', 'open', 'horizontal', 'vertical'} 或 'BRTL' 的子字符串

要用线条绘制的单元格边:'BRTL'(下、右、上、左)的子字符串,或 'open'(不绘制边)、'closed'(绘制所有边)、'horizontal'(下和上)、'vertical'(右和左)之一。

PAD = 0.1#

文本与矩形之间的填充。

auto_set_font_size(renderer)[source]#

缩小字体大小,直到文本适应单元格宽度。

draw(renderer)[source]#

使用给定的渲染器绘制 Artist(及其子对象)。

如果 Artist 不可见(Artist.get_visible 返回 False),则此操作无效。

参数:
rendererRendererBase 子类。

备注

此方法在 Artist 子类中被覆盖。

get_fontsize()[source]#

返回单元格字体大小。

get_path()[source]#

返回 Path 对象,用于 visible_edges

get_required_width(renderer)[source]#

返回单元格所需的最小宽度。

get_text()[source]#

返回单元格的 Text 实例。

get_text_bounds(renderer)[source]#

以表格坐标返回文本边界,格式为 (x, y, width, height)

set(*, agg_filter=<UNSET>, alpha=<UNSET>, angle=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, bounds=<UNSET>, capstyle=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, color=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, fill=<UNSET>, fontsize=<UNSET>, gid=<UNSET>, hatch=<UNSET>, hatch_linewidth=<UNSET>, height=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, mouseover=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, text_props=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, width=<UNSET>, x=<UNSET>, xy=<UNSET>, y=<UNSET>, zorder=<UNSET>)[source]#

一次性设置多个属性。

支持的属性包括:

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

浮点数或 None

angle

未知

animated

布尔值

antialiased or aa

布尔值或 None

bounds

(左,下,宽,高)

capstyle

CapStyle or {'butt', 'projecting', 'round'}

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

color

color

edgecolor or ec

颜色 或 None

facecolor or fc

颜色 或 None

figure

未知

fill

布尔值

fontsize

未知

gid

字符串

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth

未知

height

未知

in_layout

布尔值

joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

label

对象

linestyle or ls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth or lw

浮点数或 None

mouseover

布尔值

path_effects

AbstractPathEffect 的列表

picker

None 或 布尔值 或 浮点数 或 可调用对象

rasterized

布尔值

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

text_props

未知

transform

未知

url

字符串

visible

布尔值

width

未知

x

未知

xy

(浮点数, 浮点数)

y

未知

zorder

浮点数

set_figure(fig)[source]#

设置 Artist 所属的 FigureSubFigure 实例。

参数:
figFigureSubFigure
set_fontsize(size)[source]#

设置文本字体大小。

set_text_props(**kwargs)[source]#

更新文本属性。

有效的关键字参数有:

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

浮点数或 None

animated

布尔值

antialiased

布尔值

backgroundcolor

color

bbox

带有 patches.FancyBboxPatch 属性的字典

clip_box

未知

clip_on

未知

clip_path

未知

color or c

color

figure

Figure or SubFigure

fontfamily or family or fontname

{FONTNAME, 'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'}

fontproperties or font or font_properties

font_manager.FontPropertiesstrpathlib.Path

fontsize or size

float 或 {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}

fontstretch or stretch

{0-1000 范围内的数值, 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}

fontstyle or style

{'normal', 'italic', 'oblique'}

fontvariant or variant

{'normal', 'small-caps'}

fontweight or weight

{0-1000 范围内的数值, 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}

gid

字符串

horizontalalignment or ha

{'left', 'center', 'right'}

in_layout

布尔值

label

对象

linespacing

float (字体大小的倍数)

math_fontfamily

字符串

mouseover

布尔值

multialignment or ma

{'left', 'right', 'center'}

parse_math

布尔值

path_effects

AbstractPathEffect 的列表

picker

None 或 布尔值 或 浮点数 或 可调用对象

position

(浮点数, 浮点数)

rasterized

布尔值

rotation

float 或 {'vertical', 'horizontal'}

rotation_mode

{None, 'default', 'anchor'}

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

text

对象

transform

变换

transform_rotates_text

布尔值

url

字符串

usetex

布尔值,默认值:rcParams["text.usetex"] (默认值:False)

verticalalignment or va

{'baseline', 'bottom', 'center', 'center_baseline', 'top'}

visible

布尔值

wrap

布尔值

x

浮点数

y

浮点数

zorder

浮点数

set_transform(t)[source]#

设置艺术家变换。

参数:
tTransform
property visible_edges#

要用线条绘制的单元格边。

读取此属性将返回 'BRTL'(下、右、上、左)的子字符串。

设置此属性时,您可以使用 'BRTL' 的子字符串或 {'open', 'closed', 'horizontal', 'vertical'} 中的一个。

matplotlib.table.CustomCell[source]#

Cell 的别名

class matplotlib.table.Table(ax, loc=None, bbox=None, **kwargs)[source]#

基类: Artist

一个单元格表格。

表格由单元格网格组成,按(行,列)索引。

对于简单表格,您将有一个完整的单元格网格,索引从 (0, 0) 到 (num_rows-1, num_cols-1),其中单元格 (0, 0) 位于左上方。但是,您也可以添加带有负索引的单元格。您不必为每个网格位置添加单元格,因此您可以创建带有空洞的表格。

注意:您通常不会从头开始创建空表格。而是使用 table 从数据创建表格。

参数:
axAxes

要将表格绘制到的 Axes

loc字符串,可选

单元格相对于 ax 的位置。这必须是 codes 之一。

bboxBbox 或 [xmin, ymin, width, height],可选

用于绘制表格的边界框。如果这不是 None,它将覆盖 loc

其他参数:
**kwargs

Artist 属性。

AXESPAD = 0.02#

坐标轴与表格边缘之间的边界,以坐标轴单位表示。

FONTSIZE = 10#
add_cell(row, col, *args, **kwargs)[source]#

创建一个单元格并将其添加到表格。

参数:
row整数

行索引。

col整数

列索引。

*args, **kwargs

所有其他参数都传递给 Cell

返回:
单元格

创建的单元格。

auto_set_column_width(col)[source]#

自动将给定列的宽度设置为最佳大小。

参数:
col整数或整数序列

要自动缩放的列的索引。

auto_set_font_size(value=True)[source]#

自动设置字体大小。

codes = {'best': 0, 'bottom': 17, 'bottom left': 12, 'bottom right': 13, 'center': 9, 'center left': 5, 'center right': 6, 'left': 15, 'lower center': 7, 'lower left': 3, 'lower right': 4, 'right': 14, 'top': 16, 'top left': 11, 'top right': 10, 'upper center': 8, 'upper left': 2, 'upper right': 1}#

表格相对于坐标轴的可能放置位置值。

contains(mouseevent)[source]#

测试艺术家是否包含鼠标事件。

参数:
mouseeventMouseEvent
返回:
contains布尔值

是否有任何值在半径范围内。

details字典

一个艺术家特定的字典,包含事件上下文的详细信息,例如哪些点包含在选择半径内。有关详细信息,请参阅各个 Artist 子类。

draw(renderer)[source]#

使用给定的渲染器绘制 Artist(及其子对象)。

如果 Artist 不可见(Artist.get_visible 返回 False),则此操作无效。

参数:
rendererRendererBase 子类。

备注

此方法在 Artist 子类中被覆盖。

property edges#

使用 add_cell 新添加单元格时 visible_edges 的默认值。

备注

此设置目前仅影响使用 add_cell 新创建的单元格。

要更改现有单元格,您必须明确设置它们的边。

for c in tab.get_celld().values():
    c.visible_edges = 'horizontal'
get_celld()[source]#

返回表格中将 (row, column) 映射到 Cell 的单元格字典。

备注

您也可以直接索引 Table 对象以访问单个单元格。

cell = table[row, col]
get_children()[source]#

返回表格中包含的 Artists。

get_window_extent(renderer=None)[source]#

获取 artist 在显示空间中的边界框。

边界框的宽度和高度均为非负值。

子类应覆盖此方法,以便将其包含在边界框“紧密”计算中。默认返回一个位于 0, 0 的空边界框。

使用此函数时请注意,如果 Artist 的窗口范围发生变化,结果将不会更新。范围可能因变换堆栈中的任何更改而变化,例如更改 Axes 限制、图形大小或使用的画布(如保存图形时所做)。这可能导致交互式图形在屏幕上看起来正常,但保存时却不正确。

scale(xscale, yscale)[source]#

xscale 缩放列宽,按 yscale 缩放行高。

set(*, agg_filter=<UNSET>, alpha=<UNSET>, animated=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, fontsize=<UNSET>, gid=<UNSET>, in_layout=<UNSET>, label=<UNSET>, mouseover=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[source]#

一次性设置多个属性。

支持的属性包括:

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

浮点数或 None

animated

布尔值

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

figure

Figure or SubFigure

fontsize

浮点数

gid

字符串

in_layout

布尔值

label

对象

mouseover

布尔值

path_effects

AbstractPathEffect 的列表

picker

None 或 布尔值 或 浮点数 或 可调用对象

rasterized

布尔值

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

transform

变换

url

字符串

visible

布尔值

zorder

浮点数

set_fontsize(size)[source]#

设置单元格文本的字体大小(以磅为单位)。

参数:
size浮点数

备注

只要自动字体大小未被禁用,该值将被裁剪,使文本水平适应单元格。

您可以使用 auto_set_font_size 来禁用此行为。

>>> the_table.auto_set_font_size(False)
>>> the_table.set_fontsize(20)

但是,行高没有自动缩放,因此文本可能会超出单元格边界。

matplotlib.table.table(ax, cellText=None, cellColours=None, cellLoc='right', colWidths=None, rowLabels=None, rowColours=None, rowLoc='left', colLabels=None, colColours=None, colLoc='center', loc='bottom', bbox=None, edges='closed', **kwargs)[source]#

Axes 添加表格。

必须指定 cellTextcellColours 之一。这些参数必须是二维列表,其中外部列表定义行,内部列表定义每行的列值。每行必须具有相同数量的元素。

该表格可以选择性地包含行和列标题,这些标题分别使用 rowLabelsrowColoursrowLoccolLabelscolColourscolLoc 进行配置。

要更精细地控制表格,请使用 Table 类,并通过 Axes.add_table 将其添加到 Axes。

参数:
cellTextstr 或 pandas.DataFrame 的二维列表,可选

要放入表格单元格中的文本。

注意:字符串中的换行符目前未被考虑在内,这将导致文本超出单元格边界。

cellColours二维列表,类型为 color,可选

单元格的背景颜色。

cellLoc{'右', '中', '左'}

单元格内文本的对齐方式。

colWidths浮点数列表,可选

以 Axes 为单位的列宽。如果未给出,所有列的宽度将为 1 / ncols

rowLabels字符串列表,可选

行标题单元格的文本。

rowColours列表,类型为 color,可选

行标题单元格的颜色。

rowLoc{'左', '中', '右'}

行标题单元格的文本对齐方式。

colLabels字符串列表,可选

列标题单元格的文本。

colColours列表,类型为 color,可选

列标题单元格的颜色。

colLoc{'中', '左', '右'}

列标题单元格的文本对齐方式。

loc字符串,默认值:'bottom'

单元格相对于 ax 的位置。这必须是 codes 之一。

bboxBbox 或 [xmin, ymin, width, height],可选

用于绘制表格的边界框。如果这不是 None,它将覆盖 loc

edges{'闭合', '开放', '水平', '垂直'} 或 'BRTL' 的子字符串

要用线条绘制的单元格边框。另请参阅 visible_edges

返回:
表格

创建的表格。

其他参数:
**kwargs

Table 属性。

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

浮点数或 None

animated

布尔值

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

figure

Figure or SubFigure

fontsize

浮点数

gid

字符串

in_layout

布尔值

label

对象

mouseover

布尔值

path_effects

AbstractPathEffect 的列表

picker

None 或 布尔值 或 浮点数 或 可调用对象

rasterized

布尔值

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

transform

变换

url

字符串

visible

布尔值

zorder

浮点数