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
作为用户,您很可能不会自己创建单元格。相反,您应该使用
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#
文本与矩形之间的填充。
- draw(renderer)[source]#
使用给定的渲染器绘制 Artist(及其子对象)。
如果 Artist 不可见(
Artist.get_visible
返回 False),则此操作无效。- 参数:
- renderer
RendererBase
子类。
- renderer
备注
此方法在 Artist 子类中被覆盖。
- get_path()[source]#
返回
Path
对象,用于visible_edges
。
- 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]#
一次性设置多个属性。
支持的属性包括:
属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
浮点数或 None
未知
布尔值
antialiased
oraa
布尔值或 None
(左,下,宽,高)
CapStyle
or {'butt', 'projecting', 'round'}BboxBase
或 None布尔值
Patch 或 (Path, Transform) 或 None
颜色 或 None
颜色 或 None
未知
布尔值
未知
字符串
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
未知
未知
布尔值
JoinStyle
or {'miter', 'round', 'bevel'}对象
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
浮点数或 None
布尔值
None 或 布尔值 或 浮点数 或 可调用对象
布尔值
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
未知
未知
字符串
布尔值
未知
未知
(浮点数, 浮点数)
未知
浮点数
- set_text_props(**kwargs)[source]#
更新文本属性。
有效的关键字参数有:
属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
浮点数或 None
布尔值
布尔值
带有
patches.FancyBboxPatch
属性的字典未知
未知
未知
fontfamily
orfamily
orfontname
{FONTNAME, 'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'}
float 或 {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
{0-1000 范围内的数值, 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}
{'normal', 'italic', 'oblique'}
{'normal', 'small-caps'}
fontweight
orweight
{0-1000 范围内的数值, 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}
字符串
{'left', 'center', 'right'}
布尔值
对象
float (字体大小的倍数)
字符串
布尔值
multialignment
orma
{'left', 'right', 'center'}
布尔值
None 或 布尔值 或 浮点数 或 可调用对象
(浮点数, 浮点数)
布尔值
float 或 {'vertical', 'horizontal'}
{None, 'default', 'anchor'}
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
对象
布尔值
字符串
布尔值,默认值:
rcParams["text.usetex"]
(默认值:False
){'baseline', 'bottom', 'center', 'center_baseline', 'top'}
布尔值
布尔值
浮点数
浮点数
浮点数
- property visible_edges#
要用线条绘制的单元格边。
读取此属性将返回 'BRTL'(下、右、上、左)的子字符串。
设置此属性时,您可以使用 'BRTL' 的子字符串或 {'open', 'closed', 'horizontal', 'vertical'} 中的一个。
- class matplotlib.table.Table(ax, loc=None, bbox=None, **kwargs)[source]#
基类:
Artist
一个单元格表格。
表格由单元格网格组成,按(行,列)索引。
对于简单表格,您将有一个完整的单元格网格,索引从 (0, 0) 到 (num_rows-1, num_cols-1),其中单元格 (0, 0) 位于左上方。但是,您也可以添加带有负索引的单元格。您不必为每个网格位置添加单元格,因此您可以创建带有空洞的表格。
注意:您通常不会从头开始创建空表格。而是使用
table
从数据创建表格。- 参数:
- 其他参数:
- **kwargs
Artist
属性。
- AXESPAD = 0.02#
坐标轴与表格边缘之间的边界,以坐标轴单位表示。
- FONTSIZE = 10#
- 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]#
测试艺术家是否包含鼠标事件。
- 参数:
- mouseevent
MouseEvent
- mouseevent
- 返回:
- contains布尔值
是否有任何值在半径范围内。
- details字典
一个艺术家特定的字典,包含事件上下文的详细信息,例如哪些点包含在选择半径内。有关详细信息,请参阅各个 Artist 子类。
- draw(renderer)[source]#
使用给定的渲染器绘制 Artist(及其子对象)。
如果 Artist 不可见(
Artist.get_visible
返回 False),则此操作无效。- 参数:
- renderer
RendererBase
子类。
- renderer
备注
此方法在 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_window_extent(renderer=None)[source]#
获取 artist 在显示空间中的边界框。
边界框的宽度和高度均为非负值。
子类应覆盖此方法,以便将其包含在边界框“紧密”计算中。默认返回一个位于 0, 0 的空边界框。
使用此函数时请注意,如果 Artist 的窗口范围发生变化,结果将不会更新。范围可能因变换堆栈中的任何更改而变化,例如更改 Axes 限制、图形大小或使用的画布(如保存图形时所做)。这可能导致交互式图形在屏幕上看起来正常,但保存时却不正确。
- 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]#
一次性设置多个属性。
支持的属性包括:
属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
浮点数或 None
布尔值
BboxBase
或 None布尔值
Patch 或 (Path, Transform) 或 None
浮点数
字符串
布尔值
对象
布尔值
None 或 布尔值 或 浮点数 或 可调用对象
布尔值
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
字符串
布尔值
浮点数
- 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
添加表格。必须指定 cellText 或 cellColours 之一。这些参数必须是二维列表,其中外部列表定义行,内部列表定义每行的列值。每行必须具有相同数量的元素。
该表格可以选择性地包含行和列标题,这些标题分别使用 rowLabels、rowColours、rowLoc 和 colLabels、colColours、colLoc 进行配置。
要更精细地控制表格,请使用
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
之一。- bbox
Bbox
或 [xmin, ymin, width, height],可选 用于绘制表格的边界框。如果这不是 None,它将覆盖 loc。
- edges{'闭合', '开放', '水平', '垂直'} 或 'BRTL' 的子字符串
要用线条绘制的单元格边框。另请参阅
visible_edges
。
- 返回:
表格
创建的表格。
- 其他参数: