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

基类:Rectangle

一个单元格是一个带有相关 TextRectangle

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

参数:
xy2-元组

单元格左下角的坐标。

宽度浮动

单元格宽度。

高度浮动

单元格高度。

edgecolor : color, 默认: 'k'颜色, 默认: 'k'

单元格边框的颜色。

facecolor : color, 默认: 'w'颜色,默认值:'w'

单元格的背景颜色。

填充bool, 默认值: True

单元格背景是否被填充。

文本str, 可选

单元格文本。

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

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

draw(renderer)[源代码][源代码]#

使用给定的渲染器绘制艺术家(及其子项)。

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

参数:
渲染器 : RendererBase 子类。RendererBase 子类。

注释

此方法在 Artist 子类中被重写。

get_fontsize()[源代码][源代码]#

返回单元格字体大小。

get_path()[源代码][源代码]#

返回 visible_edgesPath

get_required_width(renderer)[源代码][源代码]#

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

get_text()[源代码][源代码]#

返回单元格的 Text 实例。

get_text_bounds(renderer)[源代码][源代码]#

返回文本边界为 (x, y, 宽度, 高度) 在表格坐标中。

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

一次性设置多个属性。

支持的属性是

属性

描述

agg_filter

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

alpha

标量或无

angle

未知

animated

布尔

抗锯齿 或 aa

布尔值或无

边界

(左, 底, 宽, 高)

capstyle

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

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色

color

edgecolor 或 ec

color or None

facecolor 或 fc

color or None

figure

未知

填充

布尔

fontsize

未知

gid

str

hatch

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

高度

未知

in_layout

布尔

joinstyle

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

标签

对象

线型 或 ls

{'-', '--', '-.', ':', '', (偏移, 开-关-序列), ...}

linewidth 或 lw

浮点数或无

鼠标悬停

布尔

路径效果

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

text_props

未知

transform

未知

url

str

可见

布尔

宽度

未知

x

未知

xy

(浮点数, 浮点数)

y

未知

zorder

浮动

set_figure(fig)[源代码][源代码]#

设置艺术家所属的 FigureSubFigure 实例。

参数:
fig : FigureSubFigure图或子图
set_fontsize(size)[源代码][源代码]#

设置文本字体大小。

set_text_props(**kwargs)[源代码][源代码]#

更新文本属性。

有效的关键字参数是:

属性

描述

agg_filter

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

alpha

标量或无

animated

布尔

抗锯齿

布尔

backgroundcolor

color

bbox

带有 patches.FancyBboxPatch 属性的字典

clip_box

未知

clip_on

未知

clip_path

未知

颜色 或 c

color

figure

FigureSubFigure

fontfamily 或 family 或 fontname

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

fontproperties 或 font 或 font_properties

font_manager.FontPropertiesstrpathlib.Path

字体大小 或大小

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

fontstretch 或 stretch

{一个数值范围在0-1000,'超压缩','特压缩','压缩','半压缩','正常','半扩展','扩展','特扩展','超扩展'}

fontstyle 或样式

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

fontvariant 或 variant

{'normal', 'small-caps'}

fontweight 或 weight

{一个数值范围在0-1000,'超轻','轻','正常','常规','书','中等','罗马','半粗','半粗','半','粗','重','特粗','黑'}

gid

str

horizontalalignment 或 ha

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

in_layout

布尔

标签

对象

行间距

浮动(字体大小的倍数)

math_fontfamily

str

鼠标悬停

布尔

多重对齐 或 ma

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

parse_math

布尔

路径效果

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

位置

(浮点数, 浮点数)

光栅化

布尔

旋转

浮点数或 {'垂直', '水平'}

rotation_mode

{None, 'default', 'anchor'}

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

文本

对象

transform

Transform

transform_rotates_text

布尔

url

str

usetex

bool, 默认值: rcParams["text.usetex"] (default: False)

垂直对齐 或 va

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

可见

布尔

wrap

布尔

x

浮动

y

浮动

zorder

浮动

set_transform(t)[源代码][源代码]#

设置艺术家变换。

参数:
t变换
property visible_edges#

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

读取此属性将返回 'BRTL' 的子字符串(底部、右侧、顶部、左侧)。

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

matplotlib.table.CustomCell[源代码]#

Cell 的别名

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

基类:Artist

一个单元格表格。

表格由一个网格单元格组成,这些单元格通过 (行, 列) 进行索引。

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

注意:通常你不会从头创建一个空表。相反,使用 table 从数据创建表格。

参数:
axAxes

要绘制表格的 Axes

locstr, 可选

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

bbox : Bbox 或 [xmin, ymin, width, height],可选Bbox 或 [xmin, ymin, width, height],可选

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

其他参数:
**kwargs

Artist 属性。

AXESPAD = 0.02#

Axes 和表格边缘之间的边框,以 Axes 单位表示。

FONTSIZE = 10#
add_cell(row, col, *args, **kwargs)[源代码][源代码]#

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

参数:
整数

行索引。

col整数

列索引。

*args, **kwargs

所有其他参数都会传递给 Cell

返回:
Cell

创建的单元格。

auto_set_column_width(col)[源代码][源代码]#

自动将给定列的宽度设置为最佳尺寸。

参数:
col整数或整数序列

要自动缩放的列的索引。

auto_set_font_size(value=True)[源代码][源代码]#

自动设置字体大小。

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}#

相对于 Axes 放置表格的可能值。

contains(mouseevent)[源代码][源代码]#

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

参数:
mouseevent鼠标事件
返回:
包含布尔

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

详情dict

一个特定于艺术家的关于事件上下文细节的字典,例如哪些点包含在拾取半径内。详情请参阅各个 Artist 子类。

draw(renderer)[源代码][源代码]#

使用给定的渲染器绘制艺术家(及其子项)。

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

参数:
渲染器 : RendererBase 子类。RendererBase 子类。

注释

此方法在 Artist 子类中被重写。

property edges#

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

注释

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

要更改现有单元格,您必须显式设置它们的边缘:

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

返回一个字典,其中包含表格中的单元格,映射 (行, 列)Cell

注释

你也可以直接索引到 Table 对象以访问单个单元格:

cell = table[row, col]
get_children()[源代码][源代码]#

返回表中包含的艺术家。

get_window_extent(renderer=None)[源代码][源代码]#

获取艺术家在显示空间中的边界框。

边界框的宽度和高度是非负的。

子类应覆盖以包含在边界框“紧密”计算中。默认是返回位于 0, 0 的空边界框。

使用此功能时要小心,如果艺术家窗口的范围发生变化,结果将不会更新。范围可能会因变换堆栈中的任何更改而改变,例如更改轴的限制、图形大小或使用的画布(如在保存图形时所做的那样)。这可能导致意外行为,即交互式图形在屏幕上看起来正常,但保存时会出现错误。

scale(xscale, yscale)[源代码][源代码]#

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

一次性设置多个属性。

支持的属性是

属性

描述

agg_filter

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

alpha

标量或无

animated

布尔

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

figure

FigureSubFigure

fontsize

浮动

gid

str

in_layout

布尔

标签

对象

鼠标悬停

布尔

路径效果

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

可见

布尔

zorder

浮动

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

Axes 添加一个表格。

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

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

对于更精细的表格控制,使用 Table 类,并使用 Axes.add_table 将其添加到 Axes 中。

参数:
cellText二维字符串列表,可选

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

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

cellColours : color 的二维列表, 可选二维列表

单元格的背景颜色。

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

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

colWidths浮点数列表,可选

坐标轴单位中的列宽。如果没有给出,所有列的宽度将为 1 / ncols

行标签list of str, 可选

行标题单元格的文本。

rowColours : color 的列表, 可选列表

行标题单元格的颜色。

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

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

colLabelslist of str, 可选

列标题单元格的文本。

colColours : color 的列表, 可选列表

列标题单元格的颜色。

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

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

locstr, 默认值: 'bottom'

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

bbox : Bbox 或 [xmin, ymin, width, height],可选Bbox 或 [xmin, ymin, width, height],可选

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

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

要绘制的单元格边缘。另见 visible_edges

返回:
Table

创建的表格。

其他参数:
**kwargs

Table 属性。

属性

描述

agg_filter

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

alpha

标量或无

animated

布尔

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

figure

FigureSubFigure

fontsize

浮动

gid

str

in_layout

布尔

标签

对象

鼠标悬停

布尔

路径效果

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

可见

布尔

zorder

浮动