matplotlib.backend_bases
#
抽象基类定义了渲染器和图形上下文必须实现的原始操作,以便作为 Matplotlib 后端提供服务。
RendererBase
一个处理绘图/渲染操作的抽象基类。
FigureCanvasBase
抽象层,将
Figure
与用户界面绘图区域等后端特定细节分离开来。GraphicsContextBase
一个提供颜色、线条样式等的抽象基类。
事件
Matplotlib 事件处理的所有基类。派生类如
KeyEvent
和MouseEvent
存储元数据,如按下的键和按钮、像素和Axes
坐标中的 x 和 y 位置。ShowBase
每个交互式后端的
Show
类的基类;然后将可调用的 'show' 设置为Show.__call__
。ToolContainerBase
每个交互式后端的工具栏类的基类。
- class matplotlib.backend_bases.CloseEvent(name, canvas, guiEvent=None)[源代码][源代码]#
基类:
Event
由关闭图形触发的 事件。
- class matplotlib.backend_bases.DrawEvent(name, canvas, renderer)[源代码][源代码]#
基类:
Event
在画布上进行绘制操作触发的事件。
在大多数后端,订阅此事件的回调将在渲染完成后但在屏幕更新之前触发。任何额外绘制到画布渲染器上的艺术家都将被反映出来,而无需显式调用
blit
。警告
在这些回调中调用
canvas.draw
和canvas.blit
可能并不安全,且可能与所有后端不兼容,并可能导致无限递归。除了由父类
Event
定义的属性外,DrawEvent 还有许多特殊属性。- 属性:
- 渲染器 :
RendererBase
RendererBase
绘制事件的渲染器。
- 渲染器 :
- class matplotlib.backend_bases.Event(name, canvas, guiEvent=None)[源代码][源代码]#
基类:
object
一个 Matplotlib 事件。
以下属性被定义并显示了它们的默认值。子类可以定义额外的属性。
- 属性:
- 名称str
事件名称。
- 画布 :
FigureCanvasBase
FigureCanvasBase
生成事件的后端特定画布实例。
- guiEvent
触发 Matplotlib 事件的 GUI 事件。
- property guiEvent#
!! 由 numpydoc 处理 !!
- class matplotlib.backend_bases.FigureCanvasBase(figure=None)[源代码][源代码]#
基类:
object
图形渲染的画布。
- 属性:
- figure图
一个高级的图形实例。
- property button_pick_id#
!! 由 numpydoc 处理 !!
- property callbacks#
!! 由 numpydoc 处理 !!
- property device_pixel_ratio#
屏幕上画布使用的物理像素与逻辑像素的比例。
默认情况下,这是1,意味着物理像素和逻辑像素大小相同。支持高DPI屏幕的子类可能会设置此属性,以表明该比例不同。除非直接与画布交互,否则所有Matplotlib交互仍保持在逻辑像素中。
- draw(*args, **kwargs)[源代码][源代码]#
渲染
Figure
。此方法必须遍历艺术家树,即使没有生成输出,因为它会触发用户在将输出保存到磁盘之前可能想要访问的延迟工作。例如计算限制、自动限制和刻度值。
- draw_idle(*args, **kwargs)[源代码][源代码]#
请求在控制返回到GUI事件循环时重绘小部件。
即使
draw_idle
被多次调用,在控制权返回 GUI 事件循环之前,图形也只会渲染一次。注释
后端可以选择重写该方法,并实现自己的策略以防止多次渲染。
- events = ['resize_event', 'draw_event', 'key_press_event', 'key_release_event', 'button_press_event', 'button_release_event', 'scroll_event', 'motion_notify_event', 'pick_event', 'figure_enter_event', 'figure_leave_event', 'axes_enter_event', 'axes_leave_event', 'close_event']#
- filetypes = {'eps': 'Encapsulated Postscript', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': 'Portable Document Format', 'pgf': 'PGF code for LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Raw RGBA bitmap', 'rgba': 'Raw RGBA bitmap', 'svg': 'Scalable Vector Graphics', 'svgz': 'Scalable Vector Graphics', 'tif': 'Tagged Image File Format', 'tiff': 'Tagged Image File Format', 'webp': 'WebP Image Format'}#
- fixed_dpi = None#
- classmethod get_default_filetype()[源代码][源代码]#
返回在
rcParams["savefig.format"]
(default:'png'
) 中指定的默认 savefig 文件格式。返回的字符串不包含句号。此方法在仅支持单一文件类型的后端中被重写。
- classmethod get_supported_filetypes_grouped()[源代码][源代码]#
返回一个字典,包含此后端支持的 savefig 文件格式,其中键是文件类型名称,例如 'Joint Photographic Experts Group',值是用于该文件类型的文件扩展名列表,例如 ['jpg', 'jpeg']。
- get_width_height(*, physical=False)[源代码][源代码]#
返回图形在整数点或像素中的宽度和高度。
当在高DPI屏幕上使用图形(并且后端支持它)时,截断为整数发生在按设备像素比缩放之后。
- 参数:
- 物理bool, 默认: False
是否返回真实的物理像素或逻辑像素。物理像素可能被支持HiDPI的后端使用,但仍然使用其实际尺寸配置画布。
- 返回:
- 宽度, 高度整数
图形的大小,以点或像素为单位,取决于后端。
- inaxes(xy)[源代码][源代码]#
返回包含点 xy 的最顶层可见
Axes
。- 参数:
- xy(浮点数, 浮点数)
(x, y) 像素位置从画布的左/底部开始。
- 返回:
Axes
或 None包含该点的最顶层可见的 Axes,如果该点没有 Axes,则为 None。
- mpl_connect(s, func)[源代码][源代码]#
将函数 func 绑定到事件 s。
- 参数:
- sstr
以下事件ID之一:
'button_press_event'
'button_release_event'
'draw_event'
'key_press_event'
'key_release_event'
'motion_notify_event'
'pick_event'
'resize_event'
'scroll_event'
'figure_enter_event',
'figure_leave_event',
'axes_enter_event',
'axes_leave_event'
'关闭事件'.
- 函数可调用
要执行的回调函数,该函数必须具有以下签名:
def func(event: Event) -> Any
对于位置事件(按钮和按键按下/释放),如果鼠标在 Axes 上,事件的
inaxes
属性将被设置为事件发生的Axes
,此外,变量xdata
和ydata
属性将被设置为鼠标在数据坐标中的位置。更多信息请参见KeyEvent
和MouseEvent
。备注
如果 func 是一个方法,这仅存储对该方法的弱引用。因此,图形不会影响相关对象的生命周期。通常,您希望通过保持对对象的引用来确保对象在其生命周期内保持活动状态。
- 返回:
- cid
一个可以与
FigureCanvasBase.mpl_disconnect
一起使用的连接ID。
示例
def on_press(event): print('you pressed', event.button, event.xdata, event.ydata) cid = canvas.mpl_connect('button_press_event', on_press)
- mpl_disconnect(cid)[源代码][源代码]#
断开与ID为 cid 的回调的连接。
示例
cid = canvas.mpl_connect('button_press_event', on_press) # ... later canvas.mpl_disconnect(cid)
- classmethod new_manager(figure, num)[源代码][源代码]#
为 figure 创建一个新的图形管理器,使用此画布类。
注释
此方法不应在子类中重新实现。如果需要自定义管理器创建逻辑,请重新实现
FigureManager.create_with_canvas
。
- new_timer(interval=None, callbacks=None)[源代码][源代码]#
创建一个新的特定于后端的
Timer
子类。这对于通过后端的原生事件循环获取周期性事件非常有用。仅针对具有GUI的后端实现。
- 参数:
- 间隔整数
计时器间隔,单位为毫秒。
- 回调list[tuple[callable, tuple, dict]]
序列 (func, args, kwargs) 其中
func(*args, **kwargs)
将由计时器每隔 interval 执行一次。返回
False
或0
的回调函数将从定时器中移除。
示例
>>> timer = fig.canvas.new_timer(callbacks=[(f1, (1,), {'a': 3})])
- print_figure(filename, dpi=None, facecolor=None, edgecolor=None, orientation='portrait', format=None, *, bbox_inches=None, pad_inches=None, bbox_extra_artists=None, backend=None, **kwargs)[源代码][源代码]#
渲染图形到硬拷贝。设置图形补丁的面部和边缘颜色。这是有用的,因为一些GUI的图形面部颜色背景是灰色的,你可能希望在硬拷贝中覆盖这一点。
- 参数:
- 文件名str 或 path-like 或 file-like
保存图像的文件。
- dpi : float, 默认值:
rcParams["savefig.dpi"]
(default:'figure'
)浮点数, 默认: 保存图像时的每英寸点数。
- facecolor : color 或 'auto', 默认值:
rcParams["savefig.facecolor"]
(default:'auto'
)颜色或 'auto',默认值:rcParams["savefig.facecolor"](默认:'auto') 图形的面颜色。如果为'auto',则使用当前图形的面颜色。
- edgecolor : color 或 'auto', 默认值:
rcParams["savefig.edgecolor"]
(default:'auto'
)颜色或 'auto',默认值:rcParams["savefig.edgecolor"](默认:'auto') 图形的边缘颜色。如果为'auto',则使用当前图形的边缘颜色。
- 方向{'landscape', 'portrait'}, 默认: 'portrait'
仅当前适用于PostScript打印。
- 格式str, 可选
强制使用特定的文件格式。如果未指定,格式将从 filename 扩展名推断,如果失败则从
rcParams["savefig.format"]
(default:'png'
) 获取。- bbox_inches : 'tight' 或
Bbox
, 默认值:rcParams["savefig.bbox"]
(default:None
)'紧密' 或者 以英寸为单位的边界框:仅保存给定部分的图形。如果为 'tight',则尝试计算图形的紧密边界框。
- pad_inches : float 或 'layout', 默认值:
rcParams["savefig.pad_inches"]
(default:0.1
)浮点数或'布局', 默认: 当 bbox_inches 为 'tight' 时,图表周围的填充量(以英寸为单位)。如果使用 'layout',则使用受限或压缩布局引擎的填充;如果未使用这些引擎之一,则忽略此设置。
- bbox_extra_artists :
Artist
的列表, 可选列表 在计算紧密边界框时将考虑的额外艺术家的列表。
- 后端str, 可选
使用非默认的后端来渲染文件,例如使用“cairo”后端而不是默认的“agg”来渲染png文件,或者使用“pgf”后端而不是默认的“pdf”来渲染pdf文件。请注意,默认的后端通常是足够的。有关每种文件格式的有效后端列表,请参见 内置后端 。自定义后端可以引用为“module://...”。
- required_interactive_framework = None#
- property scroll_pick_id#
!! 由 numpydoc 处理 !!
- set_cursor(cursor)[源代码][源代码]#
设置当前光标。
如果后端不显示任何内容,这可能不会有任何效果。
如果后端需要,此方法应在设置光标后触发后端事件循环中的更新,因为此方法可能会在GUI未更新的长时间运行任务之前被调用。
- 参数:
- cursor游标
要在画布上显示的光标。注意:某些后端可能会更改整个窗口的光标。
- start_event_loop(timeout=0)[源代码][源代码]#
启动一个阻塞的事件循环。
这样的事件循环被交互式函数使用,例如
ginput
和waitforbuttonpress
,用于等待事件。事件循环会阻塞,直到回调函数触发
stop_event_loop
,或者达到 timeout。如果 timeout 为 0 或负数,则永不超时。
只有交互式后端需要重新实现此方法,并且它依赖于
flush_events
被正确实现。交互式后端应以更原生的方式实现这一点。
- stop_event_loop()[源代码][源代码]#
停止当前的阻塞事件循环。
交互式后端需要重新实现这一点以匹配
start_event_loop
- supports_blit = False#
- class matplotlib.backend_bases.FigureManagerBase(canvas, num)[源代码][源代码]#
基类:
object
一个与后端无关的图形容器和控制器的抽象。
图表管理器被 pyplot 用于以与后端无关的方式与窗口交互。它是代表屏幕上图表的实际(GUI)框架的适配器。
图形管理器连接到特定的画布实例,而该画布实例又连接到特定的图形实例。要在用户代码中访问给定图形的图形管理器,通常使用
fig.canvas.manager
。GUI 后端从这个类派生,以将常见的操作(如 显示 或 调整大小)转换为特定于 GUI 的代码。非 GUI 后端不支持这些操作,可以直接使用基类。
以下基本操作是可访问的:
窗口操作
按键和鼠标按钮按下处理
图形管理器通过将
key_press_handler
连接到 matplotlib 事件系统来设置默认的按键和鼠标按钮按下处理。这确保了在不同后端之间使用相同的快捷键和鼠标操作。其他操作
子类将具有额外的属性和函数来访问额外的功能。这当然是特定于后端的。例如,大多数 GUI 后端都有
window
和toolbar
属性,这些属性提供了对各自框架原生 GUI 小部件的访问。- 属性:
- 画布 :
FigureCanvasBase
FigureCanvasBase
特定于后端的画布实例。
- numint 或 str
图号。
- key_press_handler_id整数
默认的按键处理程序 cid,在使用 toolmanager 时。要禁用默认的按键处理,请使用:
figure.canvas.mpl_disconnect( figure.canvas.manager.key_press_handler_id)
- button_press_handler_id整数
在使用 toolmanager 时的默认鼠标按钮处理程序 cid。要禁用默认按钮按下处理,请使用:
figure.canvas.mpl_disconnect( figure.canvas.manager.button_press_handler_id)
- 画布 :
- classmethod create_with_canvas(canvas_class, figure, num)[源代码][源代码]#
使用特定的 canvas_class 为给定的 figure 创建一个管理器。
如果后端有设置画布或管理器的特定需求,应重写此方法。
- classmethod pyplot_show(*, block=None)[源代码][源代码]#
显示所有图形。此方法是
pyplot.show
的实现。要自定义
pyplot.show
的行为,交互式后端通常应重写start_main_loop
;如果需要更多自定义逻辑,也可以重写pyplot_show
。- 参数:
- 块bool, 可选
是否通过调用
start_main_loop
进行阻塞。默认值为 None,意味着如果我们既不在 IPython 的%pylab
模式下,也不在interactive
模式下,则会进行阻塞。
- set_window_title(title)[源代码][源代码]#
设置包含该图形的窗口的标题文本。
对于非GUI(例如,PS)后端,这没有效果。
示例
>>> fig = plt.figure() >>> fig.canvas.manager.set_window_title('My figure')
- show()[源代码][源代码]#
对于GUI后端,显示图形窗口并重绘。对于非GUI后端,除非在无头模式下运行(例如在未设置DISPLAY的Linux上),否则会引发异常;此异常在`.Figure.show`中被转换为警告。
- classmethod start_main_loop()[源代码][源代码]#
启动主事件循环。
此方法由
FigureManagerBase.pyplot_show
调用,这是pyplot.show
的实现。要自定义pyplot.show
的行为,交互式后端通常应重写start_main_loop
;如果需要更多自定义逻辑,也可以重写pyplot_show
。
- class matplotlib.backend_bases.GraphicsContextBase[源代码][源代码]#
基类:
object
一个提供颜色、线条样式等的抽象基类。
- get_dashes()[源代码][源代码]#
返回作为 (偏移量, 虚线列表) 对的虚线样式。
详情请参见
set_dashes
。默认值是 (None, None)。
- get_snap()[源代码][源代码]#
返回快照设置,可以是:
True: 将顶点对齐到最近的像素中心
False: 保持顶点不变
None: (自动) 如果路径仅包含直线段,则四舍五入到最近的像素中心
- set_alpha(alpha)[源代码][源代码]#
设置用于混合的 alpha 值 - 并非所有后端都支持。
如果
alpha=None``(默认),前景色和填充色的 alpha 分量将用于设置各自的透明度(如果适用);否则,``alpha
将覆盖它们。
- set_capstyle(cs)[源代码][源代码]#
设置如何绘制线条的端点。
- 参数:
- cs :
CapStyle
或 {'butt', 'projecting', 'round'}CapStyle 或 {'butt', 'projecting', 'round'}
- cs :
- set_clip_path(path)[源代码][源代码]#
将剪辑路径设置为
TransformedPath
或 None。
- set_dashes(dash_offset, dash_list)[源代码][源代码]#
设置 gc 的虚线样式。
- 参数:
- dash_offset浮动
在虚线图案中开始图案的距离,以点为单位。通常设置为0。
- dash_list类似数组或 None
开关序列作为点。None 指定一条实线。所有其他值必须为非负值(\(\ge 0\))。
注释
更多信息请参见 PostScript 语言参考 的第666页。
- set_foreground(fg, isRGBA=False)[源代码][源代码]#
设置前景色。
- 参数:
- fg颜色
- isRGBA布尔
如果 fg 已知是一个
(r, g, b, a)
元组,isRGBA 可以设置为 True 以提高性能。
- set_joinstyle(js)[源代码][源代码]#
设置如何绘制线段之间的连接。
- 参数:
- js :
JoinStyle
或 {'miter', 'round', 'bevel'}JoinStyle 或 {'miter', 'round', 'bevel'}
- js :
- set_sketch_params(scale=None, length=None, randomness=None)[源代码][源代码]#
设置草图参数。
- 参数:
- 比例浮点数, 可选
垂直于源线的摆动幅度,以像素为单位。如果比例为
None
,或未提供,则不会提供草图滤镜。- 长度float, 默认值: 128
沿线条的摆动长度,以像素为单位。
- 随机性float, 默认值: 16
长度被缩小或扩大的比例因子。
- class matplotlib.backend_bases.KeyEvent(name, canvas, key, x=0, y=0, guiEvent=None)[源代码][源代码]#
-
一个关键事件(按键按下、按键释放)。
除了由父类
Event
和LocationEvent
定义的属性外,KeyEvent
还有许多特殊属性。- 属性:
- 关键None 或 str
按下的键。可能是 None,一个单个区分大小写的 Unicode 字符(如“g”、“G”、“#”等),一个特殊键(如“control”、“shift”、“f1”、“up”等),或上述的组合(例如,“ctrl+alt+g”、“ctrl+alt+G”)。
注释
修饰键将被添加到按下的键之前,并且顺序为“ctrl”、“alt”、“super”。此规则的例外是当按下的键本身是修饰键时,因此“ctrl+alt”和“alt+control”都可以是有效的键值。
示例
def on_key(event): print('you pressed', event.key, event.xdata, event.ydata) cid = fig.canvas.mpl_connect('key_press_event', on_key)
- class matplotlib.backend_bases.LocationEvent(name, canvas, x, y, guiEvent=None, *, modifiers=None)[源代码][源代码]#
基类:
Event
具有屏幕位置的事件。
LocationEvent 除了继承自父类
Event
的属性外,还有一些特殊属性。
- class matplotlib.backend_bases.MouseButton(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[源代码][源代码]#
基类:
IntEnum
- class matplotlib.backend_bases.MouseEvent(name, canvas, x, y, button=None, key=None, step=0, dblclick=False, guiEvent=None, *, modifiers=None)[源代码][源代码]#
-
鼠标事件('button_press_event', 'button_release_event', 'scroll_event', 'motion_notify_event')。
除了由父类
Event
和LocationEvent
定义的属性外,MouseEvent
还有许多特殊属性。- 属性:
- 按钮 : None 或
MouseButton
或 {'up', 'down'}无或 按钮被按下。'up' 和 'down' 用于滚动事件。
请注意,LEFT 和 RIGHT 实际上指的是“主要”和“次要”按钮,即如果用户反转了他们的左右按钮(“左撇子设置”),那么 LEFT 按钮将是物理上位于右侧的那个。
如果未设置此项,name 为 "scroll_event",且 step 非零,则此项将根据 step 的符号设置为 "up" 或 "down"。
- 关键None 或 str
鼠标事件触发时按下的键,例如 'shift'。参见
KeyEvent
。警告
当前键值是从画布内发生的最后一个 'key_press_event' 或 'key_release_event' 中获取的。因此,如果键盘状态的最后一次变化发生在画布没有焦点时,此属性将是错误的。另一方面,
modifiers
属性应该始终是正确的,但它只能报告修饰键。- 步骤浮动
滚动步数(向上为正,向下为负)。这仅适用于'scroll_event',否则默认为0。
- 双击布尔
事件是否为双击。这仅适用于 'button_press_event',否则为 False。特别是,它不用于 'button_release_event'。
- 按钮 : None 或
示例
def on_press(event): print('you pressed', event.button, event.xdata, event.ydata) cid = fig.canvas.mpl_connect('button_press_event', on_press)
基类:
object
导航光标的基类,版本2。
后端必须实现一个处理 'button_press_event' 和 'button_release_event' 连接的画布。更多信息请参见
FigureCanvasBase.mpl_connect()
。他们还必须定义
save_figure()
保存当前图形。
draw_rubberband()
(可选)绘制缩放到矩形“橡皮筋”矩形。
set_message()
(可选)显示消息。
set_history_buttons()
(可选)您可以更改历史记录的返回/前进按钮以指示禁用/启用状态。
并重写
__init__
以设置工具栏——不要忘记调用基类的初始化。通常,__init__
需要设置连接到home
、back
、forward
、pan
、zoom
和save_figure
方法的工具栏按钮,并使用数据路径中“images”子目录中的标准图标。就这样,剩下的交给我们!
向上移动视图限制堆栈。
为了方便直接作为GUI回调连接,这些回调通常会传递额外的参数,此方法接受任意参数,但并不使用它们。
在平移/缩放模式下拖动的回调。
缩放模式下的拖动回调。
绘制一个矩形橡皮筋以指示缩放限制。
请注意,不能保证
x0 <= x1
和y0 <= y1
。
在视图限制堆栈中向前移动。
为了方便直接作为GUI回调连接,这些回调通常会传递额外的参数,此方法接受任意参数,但并不使用它们。
恢复原始视图。
为了方便直接作为GUI回调连接,这些回调通常会传递额外的参数,此方法接受任意参数,但并不使用它们。
切换平移/缩放工具。
用左键平移,用右键缩放。
平移/缩放模式下鼠标按钮按下的回调函数。
在缩放到矩形模式下,鼠标按钮按下的回调。
将当前视图的限制和位置推入堆栈。
在平移/缩放模式下鼠标按钮释放的回调。
在缩放到矩形模式下,鼠标按钮释放的回调。
移除橡皮筋。
保存当前图形。
启用或禁用后退/前进按钮。
在工具栏或状态栏中显示消息。
重置 Axes 堆栈。
- class matplotlib.backend_bases.PickEvent(name, canvas, mouseevent, artist, guiEvent=None, **kwargs)[源代码][源代码]#
基类:
Event
一个拾取事件。
当用户在画布上选择了一个位置,该位置足够接近一个已被
Artist.set_picker
设置为可选的艺术家时,会触发此事件。除了由父类
Event
定义的属性外,PickEvent 还有许多特殊属性。- 属性:
- mouseevent鼠标事件
生成的拾取的鼠标事件。
- 艺术家 :
Artist
艺术家 选中的艺术家。注意,艺术家默认是不可选择的(参见
Artist.set_picker
)。- 其他
根据所选对象的类型,可能会存在额外的属性;例如,一个
Line2D
选择可能会定义与PatchCollection
选择不同的额外属性。
示例
将函数
on_pick()
绑定到拾取事件,该函数打印所拾取数据点的坐标:ax.plot(np.rand(100), 'o', picker=5) # 5 points tolerance def on_pick(event): line = event.artist xdata, ydata = line.get_data() ind = event.ind print(f'on pick line: {xdata[ind]:.3f}, {ydata[ind]:.3f}') cid = fig.canvas.mpl_connect('pick_event', on_pick)
- class matplotlib.backend_bases.RendererBase[源代码][源代码]#
基类:
object
一个处理绘图/渲染操作的抽象基类。
以下方法必须在后端实现以实现完整功能(尽管仅实现
draw_path
本身就能提供一个功能非常强大的后端):以下方法 应该 在后台实现,以优化原因:
- draw_gouraud_triangles(gc, triangles_array, colors_array, transform)[源代码][源代码]#
绘制一系列 Gouraud 三角形。
- 参数:
- gc
GraphicsContextBase
图形上下文。
- 三角形数组(N, 3, 2) 类似数组
三角形的 N 个 (x, y) 点的数组。
- 颜色数组(N, 3, 4) 数组类
每个三角形点的 N 个 RGBA 颜色数组。
- 变换 :
Transform
变换 应用于点的仿射变换。
- gc
- draw_image(gc, x, y, im, transform=None)[源代码][源代码]#
绘制一个RGBA图像。
- 参数:
- gc
GraphicsContextBase
带有裁剪信息的图形上下文。
- x标量
画布左侧的物理单位(即点或像素)距离。
- y标量
画布底部边缘的物理单位(即点或像素)距离。
- im : (N, M, 4) 的
numpy.uint8
数组(N, M, 4) 数组 一个包含RGBA像素的数组。
- 变换 :
Affine2DBase
Affine2DBase
仅当具体后端被编写为
option_scale_image
返回True
时,一个仿射变换(即,一个Affine2DBase
)*可能* 被传递给draw_image
。变换的平移向量以物理单位(即,点或像素)给出。请注意,该变换不会覆盖 x 和 y,并且必须在将结果通过 x 和 y 进行平移之前应用(这可以通过将 x 和 y 添加到由 transform 定义的平移向量来实现)。
- gc
- draw_markers(gc, marker_path, marker_trans, path, trans, rgbFace=None)[源代码][源代码]#
在 path 的每个顶点(不包括控制点)绘制一个标记。
基础(回退)实现会多次调用
draw_path
。后端可能希望重写此方法,以便只绘制一次标记并多次重用它。- 参数:
- gc
GraphicsContextBase
图形上下文。
- marker_path路径
标记的路径。
- marker_trans变换
应用于标记的仿射变换。
- 路径 :
Path
路径 绘制标记的位置。
- trans变换
应用于路径的仿射变换。
- rgbFace : color, 可选颜色,可选
- gc
- draw_path_collection(gc, master_transform, paths, all_transforms, offsets, offset_trans, facecolors, edgecolors, linewidths, linestyles, antialiaseds, urls, offset_position)[源代码][源代码]#
绘制一系列 路径。
每个路径首先由 all_transforms 中的相应条目(一个 (3, 3) 矩阵列表)进行变换,然后由 master_transform 进行变换。之后,它们由 offsets 中的相应条目进行平移,该条目首先由 offset_trans 进行变换。
facecolors, edgecolors, linewidths, linestyles, 和 antialiased 是设置相应属性的列表。
offset_position 现在未被使用,但保留该参数以保持向后兼容性。
基础(回退)实现会多次调用
draw_path
。后端可能希望覆盖此方法,以便仅渲染一次路径数据集,然后通过不同的偏移、颜色、样式等多次引用该路径。提供了生成器方法_iter_collection_raw_paths
和_iter_collection
来帮助(并标准化)后端之间的实现。强烈建议使用这些生成器,以便可以全局更改draw_path_collection
的行为。
- draw_quad_mesh(gc, master_transform, meshWidth, meshHeight, coordinates, offsets, offsetTrans, facecolors, antialiased, edgecolors)[源代码][源代码]#
绘制一个四边形网格。
基础(回退)实现将四边形网格转换为路径,然后调用
draw_path_collection
。
- draw_tex(gc, x, y, s, prop, angle, *, mtext=None)[源代码][源代码]#
绘制一个 TeX 实例。
- 参数:
- gc
GraphicsContextBase
图形上下文。
- x浮动
文本在显示坐标中的x位置。
- y浮动
文本基线在显示坐标中的y位置。
- sstr
TeX 文本字符串。
- prop
FontProperties
字体属性。
- 角度浮动
逆时针方向的旋转角度(以度为单位)。
- mtext文本
要渲染的原始文本对象。
- gc
- draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[源代码][源代码]#
绘制一个文本实例。
- 参数:
- gc
GraphicsContextBase
图形上下文。
- x浮动
文本在显示坐标中的x位置。
- y浮动
文本基线在显示坐标中的y位置。
- sstr
文本字符串。
- prop
FontProperties
字体属性。
- 角度浮动
逆时针方向的旋转角度(以度为单位)。
- ismath布尔值或“TeX”
如果为真,使用 mathtext 解析器。
- mtext文本
要渲染的原始文本对象。
- gc
注释
后端实现者须知:
RendererBase.draw_text
还支持将 "TeX" 传递给 ismath 参数以使用 TeX 渲染,但这对于实际的渲染后端不是必需的,实际上许多内置后端并不支持这一点。相反,TeX 渲染由draw_tex
提供。
- get_image_magnification()[源代码][源代码]#
获取传递给
draw_image
的图像的放大倍数。允许后端以不同于其他艺术家的分辨率显示图像。
- get_texmanager()[源代码][源代码]#
返回
TexManager
实例。
- get_text_width_height_descent(s, prop, ismath)[源代码][源代码]#
获取字符串 s 在显示坐标中的宽度、高度和下降量(从底部到基线的偏移量),使用
FontProperties
prop。在 s 的开头和结尾处的空白字符也会被计算在报告的宽度内。
- new_gc()[源代码][源代码]#
返回一个
GraphicsContextBase
的实例。
- option_image_nocomposite()[源代码][源代码]#
返回是否应跳过 Matplotlib 的图像合成。
光栅后端通常应返回 False(让 C 级光栅器处理图像合成);矢量后端通常应返回
not rcParams["image.composite_image"]
。
- option_scale_image()[源代码][源代码]#
返回
draw_image
中是否支持任意仿射变换(大多数矢量后端为 True)。
- points_to_pixels(points)[源代码][源代码]#
将点转换为显示单位。
你需要重写这个函数(除非你的后端没有dpi,例如,postscript或svg)。一些图像系统假设每英寸的像素值为:
points to pixels = points * pixels_per_inch/72 * dpi/72
- 参数:
- 点浮点数或类似数组的对象
- 返回:
- 点转换为像素
- start_rasterizing()[源代码][源代码]#
切换到栅格渲染器。
由
MixedModeRenderer
使用。
- stop_filter(filter_func)[源代码][源代码]#
切换回原始渲染器。临时渲染器的内容通过 filter_func 处理,并以图像形式绘制在原始渲染器上。
目前仅由 agg 渲染器支持。
- stop_rasterizing()[源代码][源代码]#
切换回矢量渲染器,并将光栅渲染器的内容作为图像绘制在矢量渲染器上。
由
MixedModeRenderer
使用。
- class matplotlib.backend_bases.ResizeEvent(name, canvas)[源代码][源代码]#
基类:
Event
由画布调整大小触发的事件。
除了由父类
Event
定义的属性外,ResizeEvent 还有许多特殊属性。- 属性:
- 宽度整数
画布的宽度,单位为像素。
- 高度整数
画布的高度,单位为像素。
- class matplotlib.backend_bases.ShowBase[源代码][源代码]#
基类:
_Backend
简单的基类,用于在后端生成
show()
函数。子类必须重写
mainloop()
方法。
- class matplotlib.backend_bases.TimerBase(interval=None, callbacks=None)[源代码][源代码]#
基类:
object
一个提供计时器事件的基类,适用于动画等事物。后端需要实现一些特定的方法,以便使用自己的计时机制,从而将计时器事件集成到它们的事件循环中。
子类必须重写以下方法:
_timer_start
: 启动计时器的后端特定代码。_timer_stop
: 停止计时器的特定后端代码。
子类可以额外重写以下方法:
_timer_set_single_shot
: 用于设置定时器为单次触发模式的代码,如果定时器对象支持的话。如果不支持,Timer
类本身将存储该标志,并且应该重写_on_timer
方法以支持这种行为。_timer_set_interval
: 设置计时器间隔的代码,如果计时器对象上有相应的方法。_on_timer
: 任何计时器对象应调用的内部函数,该函数将处理运行所有已设置的回调任务。
- 参数:
- 间隔int, 默认值: 1000ms
定时器事件之间的时间间隔,以毫秒为单位。将存储为
timer.interval
。- 回调list[tuple[callable, tuple, dict]]
将在计时器事件上调用的 (func, args, kwargs) 元组列表。此列表可通过
timer.callbacks
访问,并且可以直接操作,或者可以使用函数add_callback
和remove_callback
。
- add_callback(func, *args, **kwargs)[源代码][源代码]#
注册 func 在事件触发时由计时器调用。提供的任何额外参数都将传递给 func。
此函数返回 func,这使得它可以作为装饰器使用。
- property interval#
计时器事件之间的时间,以毫秒为单位。
- remove_callback(func, *args, **kwargs)[源代码][源代码]#
从回调列表中移除 func。
args 和 kwargs 是可选的,用于区分注册为使用不同参数调用的相同函数的副本。此行为已被弃用。未来,
*args, **kwargs
将不再被考虑;要保持特定的回调可以单独移除,请将其作为functools.partial
对象传递给add_callback
。
- property single_shot#
此计时器是否应在单次运行后停止。
- class matplotlib.backend_bases.ToolContainerBase(toolmanager)[源代码][源代码]#
基类:
object
所有工具容器的基类,例如工具栏。
- 属性:
- toolmanager工具管理器
这个
ToolContainer
想要与之通信的工具。
- add_tool(tool, group, position=-1)[源代码][源代码]#
向此容器添加一个工具。
- 参数:
- 工具工具_like
添加工具的方法,参见
ToolManager.get_tool
。- 组str
要将此工具添加到的组的名称。
- 位置int, 默认值: -1
在此组中放置此工具的位置。
- add_toolitem(name, group, position, image, description, toggle)[源代码][源代码]#
一个用于向容器添加工具项的钩子。
此钩子必须在每个后端中实现,并包含将元素添加到工具栏的后端特定代码。
警告
这是后端实现的一部分,不应由终端用户调用。他们应改为调用
ToolContainerBase.add_tool
。与按钮点击事件关联的回调函数必须 完全 是
self.trigger_tool(name)
。
- remove_toolitem(name)[源代码][源代码]#
从容器中移除工具项的钩子。
此钩子必须在每个后端中实现,并包含从工具栏中移除元素的后端特定代码;当
ToolManager
发出tool_removed_event
时调用。因为某些工具仅存在于
ToolManager
中,而不存在于ToolContainer
中,所以当调用容器中不存在的工具时,此方法必须为无操作。警告
这是后端实现的一部分,不应由最终用户调用。他们应改为调用
ToolManager.remove_tool
。- 参数:
- 名称str
要删除的工具名称。
- toggle_toolitem(name, toggled)[源代码][源代码]#
一个在不触发事件的情况下切换工具项的钩子。
此钩子必须在每个后端中实现,并包含用于静默切换工具栏元素的后端特定代码。
警告
这是后端实现的一部分,不应由最终用户调用。他们应改为调用
ToolManager.trigger_tool
或 `.ToolContainerBase.trigger_tool`(两者等效)。- 参数:
- 名称str
要切换的工具的ID。
- 切换布尔
是否将此工具设置为切换状态。
- matplotlib.backend_bases.button_press_handler(event, canvas=None, toolbar=None)[源代码][源代码]#
默认的 Matplotlib 额外鼠标按钮的操作。
参数与
key_press_handler
相同,除了 event 是一个MouseEvent
。
- matplotlib.backend_bases.get_registered_canvas_class(format)[源代码][源代码]#
返回给定文件格式的已注册默认画布。处理所需后端的延迟导入。
- matplotlib.backend_bases.key_press_handler(event, canvas=None, toolbar=None)[源代码][源代码]#
在画布和工具栏上实现 Matplotlib 的默认键绑定,详见 键事件处理。
- 参数:
- 事件 :
按键事件
KeyEvent
按键按下/释放事件。
- 画布 :
FigureCanvasBase
, 默认:event.canvas
FigureCanvasBase,默认值:event.canvas 特定于后端的画布实例。此参数保留用于向后兼容,但如果设置,应始终等于
event.canvas
。- 工具栏 :
NavigationToolbar2
, 默认:event.canvas.toolbar
NavigationToolbar2,默认值:event.canvas.toolbar 导航光标工具栏。此参数保留用于向后兼容,但如果设置,应始终等于
event.canvas.toolbar
。
- 事件 :