matplotlib.backend_bases
#
抽象基类定义了渲染器和图形上下文必须实现的原语,以充当 Matplotlib 后端。
RendererBase
处理绘图/渲染操作的抽象基类。
FigureCanvasBase
Figure
将后端特定细节(如用户界面绘图区域)分开的抽象层。GraphicsContextBase
提供颜色、线条样式等的抽象基类。
Event
所有 Matplotlib 事件处理的基类。派生类,例如
KeyEvent
并MouseEvent
存储元数据,如按下的键和按钮、像素和Axes
坐标中的 x 和 y 位置。ShowBase
Show
每个交互式后端的类的基类;然后将“show”可调用对象设置为Show.__call__
.ToolContainerBase
每个交互式后端的 Toolbar 类的基类。
- 类 matplotlib.backend_bases。CloseEvent ( name , canvas , guiEvent = None ) [source] #
基地:
Event
由关闭的图窗触发的事件。
- 类 matplotlib.backend_bases。DrawEvent ( name , canvas , renderer ) [source] #
基地:
Event
由画布上的绘制操作触发的事件。
在大多数后端,订阅此事件的回调将在渲染完成后屏幕更新之前触发。绘制到画布渲染器的任何额外艺术家都将被反映,而无需显式调用
blit
.警告
调用
canvas.draw
和canvas.blit
在这些回调中可能对所有后端都不安全,并且可能导致无限递归。除了父
Event
类定义的属性之外,DrawEvent 还有许多特殊属性。- 属性:
- 渲染器
RendererBase
绘制事件的渲染器。
- 渲染器
- 类 matplotlib.backend_bases。事件( name , canvas , guiEvent = None ) [source] #
基地:
object
Matplotlib 事件。
以下属性已定义并以其默认值显示。子类可以定义额外的属性。
- 属性:
- 名称str
事件名称。
- 帆布
FigureCanvasBase
生成事件的特定于后端的画布实例。
- gui事件
触发 Matplotlib 事件的 GUI 事件。
- 类 matplotlib.backend_bases。FigureCanvasBase ( figure = None ) [来源] #
基地:
object
图形渲染到的画布。
- 属性:
- 数字
matplotlib.figure.Figure
高级图形实例。
- 数字
- 属性 button_pick_id #
- button_press_event ( x , y , button , dblclick = False , guiEvent = None ) [来源] #
[已弃用] 鼠标按钮按下事件的回调处理。
后端派生类应在任何鼠标按钮按下时调用此函数。( x , y ) 是画布坐标 ((0, 0) 在左下角)。button 和 key 的定义如
MouseEvent
.此方法将使用实例调用连接到“button_press_event”的所有函数
MouseEvent
。笔记
3.6 版后已弃用:改用 callbacks.process('button_press_event', MouseEvent(...))。
- button_release_event ( x , y , button , guiEvent = None ) [source] #
[已弃用] 鼠标按钮释放事件的回调处理。
后端派生类应在任何鼠标按钮释放时调用此函数。
此方法将使用实例调用连接到“button_release_event”的所有函数
MouseEvent
。- 参数:
- x浮动
画布坐标,其中 0=left。
- y浮动
0=底部的画布坐标。
- gui事件
生成 Matplotlib 事件的本机 UI 事件。
笔记
3.6 版后已弃用:改用 callbacks.process('button_release_event', MouseEvent(...))。
- 属性 回调#
- close_event ( guiEvent = None ) [来源] #
[已弃用] 将 a 传递
CloseEvent
给所有连接到close_event
.笔记
3.6 版后已弃用:请改用 callbacks.process('close_event', CloseEvent(...))。
- 属性 device_pixel_ratio #
用于屏幕上画布的物理像素与逻辑像素的比率。
默认情况下,这是 1,这意味着物理和逻辑像素的大小相同。支持高 DPI 屏幕的子类可以设置此属性以指示所述比率不同。除非直接使用画布,否则所有 Matplotlib 交互都保留在逻辑像素中。
- draw ( * args , ** kwargs ) [来源] #
渲染
Figure
.即使没有产生输出,此方法也必须遍历艺术家树,因为它会触发用户在将输出保存到磁盘之前可能想要访问的延迟工作。例如计算限制、自动限制和刻度值。
- draw_event (渲染器) [来源] #
[已弃用] 将 a 传递
DrawEvent
给所有连接到draw_event
.笔记
3.6 版后已弃用:改用 callbacks.process('draw_event', DrawEvent(...))。
- draw_idle ( * args , ** kwargs ) [来源] #
一旦控制返回到 GUI 事件循环,请求一个小部件重绘。
即使
draw_idle
在控制返回到 GUI 事件循环之前发生多次调用,图形也只会呈现一次。笔记
后端可以选择覆盖该方法并实施自己的策略来防止多次渲染。
- enter_notify_event ( guiEvent = None , xy = None ) [source] #
[不推荐]鼠标光标进入画布的回调处理。
后端派生类在进入画布时应该调用这个函数。
- 参数:
- gui事件
生成 Matplotlib 事件的本机 UI 事件。
- xy (浮点数,浮点数)
进入画布时指针的坐标位置。
笔记
3.6 版后已弃用:请改用 callbacks.process('enter_notify_event', LocationEvent(...)) 。
- 事件= ['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': '联合图像专家组', 'jpg': '联合图像专家组', 'pdf': '便携式文档格式', 'pgf': 'PGF LaTeX 的代码',' png ':'便携式网络图形','ps':'Postscript','raw':'Raw RGBA位图','rgba':'Raw RGBA位图','svg': '可缩放矢量图形', 'svgz': 'Scalable Vector Graphics', 'tif': '标记 图像 文件 格式', 'tiff': '标记 图像 文件 格式', 'webp': 'WebP 图像 格式'} #
- fixed_dpi =无#
- 类方法 get_default_filetype ( ) [来源] #
rcParams["savefig.format"]
返回在(默认值:)中指定的默认 savefig 文件格式'png'
。返回的字符串不包含句点。此方法在仅支持单一文件类型的后端被覆盖。
- 类方法 get_supported_filetypes_grouped ( ) [来源] #
返回此后端支持的 savefig 文件格式的字典,其中键是文件类型名称,例如“联合摄影专家组”,值是用于该文件类型的文件扩展名列表,例如 ['jpg' ,'JPEG']。
- get_width_height ( * , physical = False ) [来源] #
返回以整数点或像素为单位的图形宽度和高度。
当图形用于高 DPI 屏幕(并且后端支持它)时,在按设备像素比缩放后会截断为整数。
- 参数:
- 物理布尔值,默认值:False
是返回真实的物理像素还是逻辑像素。支持 HiDPI 的后端可以使用物理像素,但仍使用其实际大小配置画布。
- 返回:
- 宽度,高度
图形的大小,以点或像素为单位,取决于后端。
- inaxes ( xy ) [来源] #
Axes
返回包含点xy的最顶部可见。- 参数:
- xy (浮点数,浮点数)
(x, y) 画布左侧/底部的像素位置。
- 返回:
Axes
或无包含该点的最顶部可见 Axes,如果该点没有 Axes,则为 None。
- key_press_event ( key , guiEvent = None ) [source] #
[已弃用] 将 a 传递
KeyEvent
给所有连接到key_press_event
.笔记
3.6 版后已弃用:改用 callbacks.process('key_press_event', KeyEvent(...))。
- key_release_event ( key , guiEvent = None ) [source] #
[已弃用] 将 a 传递
KeyEvent
给所有连接到key_release_event
.笔记
3.6 版后已弃用:改用 callbacks.process('key_release_event', KeyEvent(...))。
- leave_notify_event ( guiEvent = None ) [来源] #
[不推荐]鼠标光标离开画布的回调处理。
后端派生类在离开画布时应调用此函数。
- 参数:
- gui事件
生成 Matplotlib 事件的本机 UI 事件。
笔记
3.6 版后已弃用:请改用 callbacks.process('leave_notify_event', LocationEvent(...))。
- motion_notify_event ( x , y , guiEvent = None ) [来源] #
[不推荐]鼠标移动事件的回调处理。
后端派生类应在任何运动通知事件上调用此函数。
此方法将使用实例调用连接到“motion_notify_event”的所有函数
MouseEvent
。- 参数:
- x浮动
画布坐标,其中 0=left。
- y浮动
0=底部的画布坐标。
- gui事件
生成 Matplotlib 事件的本机 UI 事件。
笔记
3.6 版后已弃用:请改用 callbacks.process('motion_notify_event', MouseEvent(...))。
- mpl_connect ( s , func ) [来源] #
将函数func绑定到事件s。
- 参数:
- 字符串_
以下事件 ID 之一:
'button_press_event'
'button_release_event'
'draw_event'
'key_press_event'
'key_release_event'
'motion_notify_event'
'pick_event'
“调整大小事件”
“滚动事件”
'figure_enter_event',
'figure_leave_event',
'axes_enter_event',
'axes_leave_event'
“关闭事件”。
- 函数可调用
要执行的回调函数,必须有签名:
def func(event: Event) -> Any
对于位置事件(按钮和按键按下/释放),如果鼠标在轴上,
inaxes
则事件的属性将设置为Axes
事件发生结束,另外,变量xdata
和ydata
属性将设置为鼠标数据坐标中的位置。请参阅KeyEvent
和MouseEvent
了解更多信息。
- 返回:
- cid
可以与 一起使用的连接 ID
FigureCanvasBase.mpl_disconnect
。
例子
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)
- 类方法 new_manager ( figure , num ) [ source] #
使用这个画布类为figure创建一个新的图形管理器。
笔记
此方法不应在子类中重新实现。如果需要自定义管理器创建逻辑,请重新实现
FigureManager.create_with_canvas
.
- new_timer ( interval = None , callbacks = None ) [source] #
创建一个新的后端特定子类
Timer
.这对于通过后端的本机事件循环获取周期性事件很有用。仅针对带有 GUI 的后端实施。
- 参数:
- 区间整数
以毫秒为单位的计时器间隔。
- 回调列表[元组 [可调用,元组,字典]]
(func, args, kwargs) 的序列 将由计时器在每个间隔执行。
func(*args, **kwargs)
False
返回或0
将从计时器中删除的回调。
例子
>>> timer = fig.canvas.new_timer(callbacks=[(f1, (1,), {'a': 3})])
- pick_event ( mouseevent , artist , ** kwargs ) [source] #
[已弃用] 拾取事件的回调处理。
此方法将由被选中的艺术家调用,并将触发
PickEvent
回调注册的侦听器。请注意,默认情况下艺术家是不可挑选的(请参阅 参考资料
Artist.set_picker
)。笔记
3.6 版后已弃用:请改用 callbacks.process('pick_event', PickEvent(...))。
- print_figure (文件名, 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浮点数,默认值:(
rcParams["savefig.dpi"]
默认值'figure'
:) 保存图形的每英寸点数。
- facecolor颜色或“自动”,默认值:(
rcParams["savefig.facecolor"]
默认值'auto'
:) 人物的面色。如果是“自动”,则使用当前图形的面色。
- edgecolor颜色或“自动”,默认值:(
rcParams["savefig.edgecolor"]
默认值'auto'
:) 图的边缘颜色。如果为“自动”,则使用当前图形边缘颜色。
- 方向{'风景','肖像'},默认值:'肖像'
目前仅适用于 PostScript 打印。
- 格式str,可选
强制使用特定的文件格式。如果未给出,则从文件扩展名推断格式,如果失败则从
rcParams["savefig.format"]
(默认值:)推断'png'
。- bbox_inches 'tight' 或
Bbox
,默认值:(rcParams["savefig.bbox"]
默认值None
:) 以英寸为单位的边界框:仅保存图形的给定部分。如果'tight',试着找出图的tight bbox。
- pad_inches浮动,默认值:(
rcParams["savefig.pad_inches"]
默认值0.1
:) 当bbox_inches为“紧”时,图形周围的填充量。
- bbox_extra_artists列表
Artist
,可选 计算紧凑 bbox 时将考虑的额外艺术家列表。
- 后端str,可选
使用非默认后端来渲染文件,例如使用“cairo”后端而不是默认“agg”来渲染 png 文件,或者使用“pgf”后端而不是默认“pdf”来渲染 pdf 文件。请注意,默认后端通常就足够了。有关每种文件格式的有效后端列表,请参阅 内置后端。自定义后端可以引用为“module://...”。
- required_interactive_framework =无#
- resize_event ( ) [来源] #
[已弃用] 将 a 传递
ResizeEvent
给所有连接到resize_event
.笔记
3.6 版后已弃用:请改用 callbacks.process('resize_event', ResizeEvent(...))。
- scroll_event ( x , y , step , guiEvent = None ) [source] #
[不推荐]滚动事件的回调处理。
后端派生类应在任何滚轮事件上调用此函数。( x , y ) 是画布坐标 ((0, 0) 在左下角)。button 和 key 的定义如
MouseEvent
.此方法将使用实例调用连接到“scroll_event”的所有函数
MouseEvent
。笔记
3.6 版后已弃用:改用 callbacks.process('scroll_event', MouseEvent(...))。
- 属性 scroll_pick_id #
- set_cursor ( cursor ) [源代码] #
设置当前光标。
如果后端不显示任何内容,这可能无效。
如果后端需要,此方法应在设置光标后触发后端事件循环中的更新,因为此方法可能会在例如不更新 GUI 的长时间运行的任务之前调用。
- 参数:
- 光标
Cursors
显示在画布上的光标。注意:某些后端可能会更改整个窗口的光标。
- 光标
- start_event_loop ( timeout = 0 ) [来源] #
启动阻塞事件循环。
这样的事件循环被交互函数使用,例如
ginput
andwaitforbuttonpress
,来等待事件。事件循环阻塞,直到回调函数触发
stop_event_loop
,或达到超时。如果超时为 0 或负数,则永不超时。
只有交互式后端需要重新实现此方法,并且它依赖于
flush_events
正确实现。交互式后端应该以更原生的方式实现这一点。
- stop_event_loop ( ) [来源] #
停止当前的阻塞事件循环。
交互式后端需要重新实现它以匹配
start_event_loop
- 支持_blit = False #
- 类 matplotlib.backend_bases。FigureManagerBase ( canvas , num ) [来源] #
基地:
object
图容器和控制器的后端独立抽象。
pyplot 使用图形管理器以独立于后端的方式与窗口交互。它是真实(GUI)框架的适配器,代表屏幕上的视觉图形。
GUI 后端从此类定义以将常见操作(例如显示或调整大小)转换为特定于 GUI 的代码。非 GUI 后端不支持这些操作,只能使用基类。
可以访问以下基本操作:
窗口操作
按键和鼠标按键处理
key_press_handler
图形管理器通过连接到 matplotlib 事件系统来设置默认的键和鼠标按钮按下处理。这确保了跨后端的相同快捷方式和鼠标操作。其他操作
子类将具有额外的属性和功能来访问额外的功能。这当然是特定于后端的。例如,大多数 GUI 后端具有
window
和toolbar
属性,可以访问相应框架的本机 GUI 小部件。- 属性:
- 帆布
FigureCanvasBase
特定于后端的画布实例。
- num int 或 str
图号。
- key_press_handler_id整数
使用工具管理器时的默认密钥处理程序 cid。要禁用默认按键处理,请使用:
figure.canvas.mpl_disconnect( figure.canvas.manager.key_press_handler_id)
- button_press_handler_id int
使用工具管理器时的默认鼠标按钮处理程序 cid。要禁用默认按钮按下处理,请使用:
figure.canvas.mpl_disconnect( figure.canvas.manager.button_press_handler_id)
- 帆布
- 类方法 create_with_canvas ( canvas_class , figure , num ) [source] #
使用特定canvas_class为给定图形创建管理器。
如果后端有设置画布或管理器的特定需求,则应覆盖此方法。
- 显示( ) [来源] #
对于 GUI 后端,显示图形窗口并重绘。对于非 GUI 后端,引发异常,除非无头运行(即在未设置 DISPLAY 的 Linux 上);此异常将转换为 中的警告
Figure.show
。
- 类 matplotlib.backend_bases。GraphicsContextBase [来源] #
基地:
object
提供颜色、线条样式等的抽象基类。
- get_clip_path ( ) [来源] #
以 (path, transform) 形式返回剪辑路径,其中 path 是一个
Path
实例,transform 是仿射变换,用于在剪辑之前应用到路径。
- get_dashes ( ) [来源] #
将破折号样式作为 (offset, dash-list) 对返回。
详情请参阅
set_dashes
。默认值为(无,无)。
- set_alpha ( alpha ) [来源] #
设置用于混合的 alpha 值 - 并非所有后端都支持。
如果
alpha=None
(默认),前景色和填充色的 alpha 分量将用于设置它们各自的透明度(如果适用);否则,alpha
将覆盖它们。
- set_clip_path (路径) [来源] #
将剪辑路径设置为 a
TransformedPath
或 None。
- set_dashes ( dash_offset , dash_list ) [来源] #
为 gc 设置破折号样式。
- 参数:
- dash_offset浮点数
以点为单位,与开始图案的虚线图案的距离。通常设置为 0。
- dash_list类数组或无
开关顺序为点。无指定实线。否则,所有值必须为非负数 (\(\ge 0\))。
笔记
见第 PostScript 语言参考的 666 以 获取更多信息。
- set_foreground ( fg , isRGBA = False ) [来源] #
设置前景色。
- 参数:
- fg颜色
- isRGBA布尔值
如果已知fg是一个元组,则可以将isRGBA设置为 True 以提高性能。
(r, g, b, a)
- 类 matplotlib.backend_bases。KeyEvent ( name , canvas , key , x = 0 , y = 0 , guiEvent = None ) [source] #
-
按键事件(按键按下、按键释放)。
除了父级
Event
和LocationEvent
类定义的属性之外,KeyEvent 还具有许多特殊属性。笔记
修饰键将作为按下键的前缀,并按“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)
- 属性:
- 键无或 str
按下的键。可以是None、单个区分大小写的 Unicode 字符(“g”、“G”、“#”等)、特殊键(“control”、“shift”、“f1”、“up”等)或以上的组合(例如,“ctrl+alt+g”、“ctrl+alt+G”)。
- 类 matplotlib.backend_bases。LocationEvent ( name , canvas , x , y , guiEvent = None ) [source] #
基地:
Event
具有屏幕位置的事件。
除了父
Event
类定义的属性之外,LocationEvent 还具有许多特殊属性。- 属性:
- 最后一个事件=无#
- 类 matplotlib.backend_bases。MouseEvent ( name , canvas , x , y , button = None , key = None , step = 0 , dblclick = False , guiEvent = None ) [来源] #
-
鼠标事件('button_press_event'、'button_release_event'、'scroll_event'、'motion_notify_event')。
除了由父级
Event
和LocationEvent
类定义的属性之外,MouseEvent 还具有许多特殊属性。例子
def on_press(event): print('you pressed', event.button, event.xdata, event.ydata) cid = fig.canvas.mpl_connect('button_press_event', on_press)
- 属性:
- 按钮无 或
MouseButton
或 {'up', 'down'} 按下按钮。'up' 和 'down' 用于滚动事件。
请注意,LEFT 和 RIGHT 实际上是指“主要”和“次要”按钮,即如果用户颠倒他们的左右按钮(“左手设置”),那么 LEFT 按钮将在物理上位于右侧。
如果未设置,名称为“scroll_event”,且step非零,则根据step的符号将其设置为“up”或“down” 。
- 键无或 str
鼠标事件触发时按下的键,例如“shift”。见
KeyEvent
。警告
此键当前是从画布内发生的最后一个“key_press_event”或“key_release_event”中获得的。因此,如果在画布没有焦点的情况下发生了键盘状态的最后变化,则该属性将是错误的。
- 步进浮动
滚动步数(“向上”为正,“向下”为负)。这仅适用于“scroll_event”,否则默认为 0。
- dblclick布尔值
事件是否为双击。这仅适用于“button_press_event”,否则为 False。特别是,它没有在“button_release_event”中使用。
- 按钮无 或
基地:
object
导航光标的基类,版本 2。
后端必须实现处理“button_press_event”和“button_release_event”连接的画布。有关
FigureCanvasBase.mpl_connect()
更多信息,请参阅。他们还必须定义
save_figure()
保存当前图形
draw_rubberband()
(可选的)绘制缩放以矩形“橡皮筋”矩形
set_message()
(可选的)显示信息
set_history_buttons()
(可选的)您可以更改历史后退/前进按钮以指示禁用/启用状态。
并覆盖
__init__
以设置工具栏——不要忘记调用基类 init。通常,__init__
需要设置工具栏按钮连接到home
、back
、forward
、pan
、zoom
和save_figure
方法,并使用数据路径的“图像”子目录中的标准图标。就是这样,剩下的我们来做!
向后移动视图边界堆栈。
为了方便直接连接为 GUI 回调,通常会传递额外的参数,此方法接受任意参数,但不使用它们。
在平移/缩放模式下拖动的回调。
在缩放模式下拖动的回调。
绘制一个矩形橡皮筋来指示缩放限制。
请注意,不能保证和。
x0 <= x1
y0 <= y1
在视图 lim 堆栈中向前移动。
为了方便直接连接为 GUI 回调,通常会传递额外的参数,此方法接受任意参数,但不使用它们。
恢复原始视图。
为了方便直接连接为 GUI 回调,通常会传递额外的参数,此方法接受任意参数,但不使用它们。
切换平移/缩放工具。
用左键平移,用右键缩放。
在平移/缩放模式下按下鼠标按钮的回调。
在缩放到矩形模式下按下鼠标按钮的回调。
将当前视图限制和位置推送到堆栈上。
在平移/缩放模式下释放鼠标按钮的回调。
缩放到矩形模式下鼠标按钮释放的回调。
取下橡皮筋。
保存当前图形。
[不推荐使用]将当前光标设置为
Cursors
枚举值之一。如果后端需要,此方法应在设置光标后触发后端事件循环中的更新,因为此方法可能会在例如不更新 GUI 的长时间运行的任务之前调用。
笔记
3.5 版后已弃用:改为使用
FigureCanvasBase.set_cursor
。
启用或禁用后退/前进按钮。
在工具栏或状态栏中显示一条消息。
重置轴堆栈。
- 类 matplotlib.backend_bases。PickEvent ( name , canvas , mouseevent , artist , guiEvent = None , ** kwargs ) [source] #
基地:
Event
一个选择事件。
当用户在画布上选择一个足够接近艺术家的位置时触发此事件,该艺术家已通过
Artist.set_picker
.除了父
Event
类定义的属性之外,PickEvent 还具有许多特殊属性。例子
绑定一个函数
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('on pick line:', np.array([xdata[ind], ydata[ind]]).T) cid = fig.canvas.mpl_connect('pick_event', on_pick)
- 属性:
- 鼠标事件
MouseEvent
生成选择的鼠标事件。
- 艺术家
matplotlib.artist.Artist
被选中的艺术家。请注意,默认情况下艺术家是不可挑选的(请参阅 参考资料
Artist.set_picker
)。- 其他
根据拾取对象的类型,可能会出现其他属性;例如,
Line2D
选择可以定义与选择不同的额外属性PatchCollection
。
- 鼠标事件
- 类 matplotlib.backend_bases。RendererBase [来源] #
基地:
object
处理绘图/渲染操作的抽象基类。
必须在后端实现以下方法才能获得全部功能(尽管
draw_path
单独实现将提供强大的后端):出于优化原因,应在后端实现以下方法:
- draw_gouraud_triangle ( gc , points , colors , transform ) [source] #
绘制一个 Gouraud 阴影三角形。
- 参数:
- GC
GraphicsContextBase
图形上下文。
- 点(3, 2) 类似数组
三角形的 (x, y) 点数组。
- 颜色(3, 4) 类似数组
三角形每个点的 RGBA 颜色。
- 转换
matplotlib.transforms.Transform
应用于点的仿射变换。
- GC
- draw_gouraud_triangles ( gc , triangles_array , colors_array , transform ) [source] #
绘制一系列 Gouraud 三角形。
- 参数:
- 点(N, 3, 2) 类似数组
三角形的N (x, y) 点数组。
- 颜色(N, 3, 4) 类似数组
三角形每个点的N RGBA 颜色数组。
- 转换
matplotlib.transforms.Transform
应用于点的仿射变换。
- draw_image ( gc , x , y , im , transform = None ) [来源] #
绘制 RGBA 图像。
- 参数:
- GC
GraphicsContextBase
带有剪辑信息的图形上下文。
- x标量
距画布左侧的物理单位(即点或像素)的距离。
- y标量
距离画布底部的物理单位(即点或像素)的距离。
- im (N, M, 4) 类似于 np.uint8 的数组
一组 RGBA 像素。
- 转换
matplotlib.transforms.Affine2DBase
当且仅当具体后端被编写为
option_scale_image
返回True
时,仿射变换(即 anAffine2DBase
)可以传递给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_trans
matplotlib.transforms.Transform
应用于标记的仿射变换。
- 反式
matplotlib.transforms.Transform
应用于路径的仿射变换。
- GC
- draw_path_collection ( gc , master_transform , paths , all_transforms , offsets , offset_trans , facecolors , edgecolors , linewidths , linestyles , antialiaseds , urls , offset_position ) [source] #
绘制路径集合。
每个路径首先由 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 ,坐标, offsets , offsetTrans , facecolors , antialiased , edgecolors ) [source] #
画一个四边形。
基本(后备)实现将四边形转换为路径,然后调用
draw_path_collection
.
- draw_text ( gc , x , y , s , prop , angle , ismath = False , mtext = None ) [来源] #
绘制一个文本实例。
- 参数:
- GC
GraphicsContextBase
图形上下文。
- x浮动
显示坐标中文本的 x 位置。
- y浮动
显示坐标中文本基线的 y 位置。
- 字符串_
文本字符串。
- 支柱
matplotlib.font_manager.FontProperties
字体属性。
- 角度浮动
以度为单位的逆时针旋转角度。
- 多行文字
matplotlib.text.Text
要渲染的原始文本对象。
- GC
笔记
后端实施者的注意事项:
当您尝试确定您的边界框是否正确(这使文本布局/对齐能够正常工作)时,它有助于更改 text.py 中的行:
if 0: bbox_artist(self, renderer)
到 if 1,然后实际的边界框将与您的文本一起绘制。
- get_image_magnification ( ) [来源] #
获取放大传递给的图像的因子
draw_image
。允许后端拥有与其他艺术家不同的分辨率的图像。
- get_texmanager ( ) [来源] #
返回
TexManager
实例。
- get_text_width_height_descent ( s , prop , ismath ) [来源] #
使用 prop获取字符串s的显示坐标中的宽度、高度和下降(从底部到基线的偏移量)。
FontProperties
- new_gc ( ) [来源] #
返回 a 的一个实例
GraphicsContextBase
。
- option_image_nocomposite ( ) [来源] #
返回是否应跳过 Matplotlib 的图像合成。
光栅后端通常应该返回 False(让 C 级光栅器负责图像合成);矢量后端通常应该返回.
not rcParams["image.composite_image"]
- option_scale_image ( ) [来源] #
返回是否支持任意仿射变换
draw_image
(对于大多数矢量后端为真)。
- points_to_pixels (点) [来源] #
将点转换为显示单位。
您需要覆盖此函数(除非您的后端没有 dpi,例如 postscript 或 svg)。一些成像系统假定每英寸像素有一些值:
points to pixels = points * pixels_per_inch/72 * dpi/72
- 参数:
- 点浮点数或类似数组
一个浮点数或一个 numpy 浮点数数组
- 返回:
- 点转换为像素
- start_rasterizing ( ) [来源] #
切换到光栅渲染器。
由 使用
MixedModeRenderer
。
- stop_rasterizing ( ) [来源] #
切换回矢量渲染器并将光栅渲染器的内容绘制为矢量渲染器上的图像。
由 使用
MixedModeRenderer
。
- 类 matplotlib.backend_bases。ResizeEvent ( name , canvas ) [source] #
基地:
Event
由画布调整大小触发的事件。
除了父
Event
类定义的属性之外,ResizeEvent 还具有许多特殊属性。- 属性:
- 宽度整数
画布的宽度(以像素为单位)。
- 高度整数
画布的高度(以像素为单位)。
- 类 matplotlib.backend_bases。TimerBase ( interval = None , callbacks = None ) [source] #
基地:
object
提供定时器事件的基类,对事物动画很有用。后端需要实现一些特定的方法才能使用自己的计时机制,以便将计时器事件集成到它们的事件循环中。
子类必须覆盖以下方法:
_timer_start
:用于启动计时器的后端特定代码。_timer_stop
:用于停止计时器的后端特定代码。
子类可以额外覆盖以下方法:
_timer_set_single_shot
:用于将定时器设置为单次运行模式的代码,如果定时器对象支持的话。如果不是,则Timer
类本身将存储标志,并且_on_timer
应覆盖该方法以支持此类行为。_timer_set_interval
: 用于设置定时器间隔的代码,如果在定时器对象上有这样做的方法。_on_timer
:任何计时器对象都应该调用的内部函数,它将处理运行所有已设置的回调的任务。
- 参数:
- 间隔int,默认:1000ms
计时器事件之间的时间(以毫秒为单位)。将存储为
timer.interval
.- 回调列表[元组 [可调用,元组,字典]]
将在计时器事件上调用的 (func, args, kwargs) 元组列表。该列表可以直接访问并且
timer.callbacks
可以直接操作,或者功能可以使用。add_callback
remove_callback
- add_callback ( func , * args , ** kwargs ) [source] #
注册func以在事件触发时由计时器调用。提供的任何其他参数都将传递给func。
此函数返回func,这使得它可以用作装饰器。
- 属性 区间#
定时器事件之间的时间,以毫秒为单位。
- remove_callback ( func , * args , ** kwargs ) [source] #
从回调列表中删除func 。
args和kwargs是可选的,用于区分注册为使用不同参数调用的同一函数的副本。此行为已弃用。以后不再考虑;要保持特定回调本身可移动,请将其作为对象传递给。
*args, **kwargs
add_callback
functools.partial
- 属性 single_shot #
此计时器是否应在单次运行后停止。
- 类 matplotlib.backend_bases。ToolContainerBase ( toolmanager ) [来源] #
基地:
object
所有工具容器的基类,例如工具栏。
- 属性:
- 工具管理器
ToolManager
this
ToolContainer
要与之通信的工具。
- 工具管理器
- add_tool ( tool , group , position = -1 ) [source] #
将工具添加到此容器。
- 参数:
- 工具tool_like
要添加的工具,请参阅
ToolManager.get_tool
。- 组str
要将此工具添加到的组的名称。
- 位置int,默认值:-1
组内放置此工具的位置。
- add_toolitem ( name , group , position , image , description , toggle ) [source] #
将一个工具项添加到容器中。
此方法必须在每个后端实现。
与按钮单击事件关联的回调必须完全是
self.trigger_tool(name)
.
- remove_toolitem (名称) [来源] #
从
ToolContainer
.此方法必须在每个后端实现。
在
ToolManager
发出tool_removed_event
.- 参数:
- 名称str
要删除的工具的名称。
- matplotlib.backend_bases。button_press_handler ( event , canvas = None , toolbar = None ) [来源] #
额外鼠标按钮的默认 Matplotlib 按钮操作。
参数与 for
key_press_handler
相同,只是event是 aMouseEvent
。
- matplotlib.backend_bases。key_press_handler ( event , canvas = None , toolbar = None ) [来源] #
为导航键盘快捷键中描述的画布和工具栏实现默认的 Matplotlib 键绑定。
- 参数:
- 事件
KeyEvent
按键/释放事件。
- 画布
FigureCanvasBase
,默认:event.canvas
特定于后端的画布实例。保留此参数是为了向后兼容,但如果设置,则应始终等于
event.canvas
。- 工具栏
NavigationToolbar2
,默认:event.canvas.toolbar
导航光标工具栏。保留此参数是为了向后兼容,但如果设置,则应始终等于
event.canvas.toolbar
。
- 事件