matplotlib.projections
#
不可分离的变换,将数据空间映射到屏幕空间。
投影被定义为 Axes
的子类。它们包括以下元素:
从数据坐标到显示坐标的转换。
该变换的逆变换。例如,这用于将鼠标位置从屏幕空间转换回数据空间。
网格线、刻度和刻度标签的变换。自定义投影通常需要将这些元素放置在特殊位置,Matplotlib 提供了一个工具来帮助实现这一点。
设置默认值(覆盖
cla
),因为直角坐标系的默认值可能不合适。定义 Axes 的形状,例如,一个椭圆形的 Axes,将用于绘制图表的背景并对任何数据元素进行裁剪。
为投影定义自定义定位器和格式化器。例如,在地理投影中,即使数据以弧度为单位,显示网格以度为单位可能更为方便。
设置交互式的平移和缩放。这是一个留给读者的“高级”功能,但在
matplotlib.projections.polar
中有极坐标图的示例。任何用于增加便利性或功能性的额外方法。
一旦定义了投影轴,它可以通过以下两种方式之一使用:
通过定义类属性
name
,投影 Axes 可以注册到matplotlib.projections.register_projection
,随后只需通过名称调用即可:fig.add_subplot(projection="my_proj_name")
对于更复杂的、可参数化的投影,可以定义一个通用的“投影”对象,该对象包括方法
_as_mpl_axes
。_as_mpl_axes
不应接受任何参数,并返回投影的 Axes 子类和一个字典,其中包含要传递给子类__init__
方法的额外参数。随后,可以使用以下方式初始化参数化投影:fig.add_subplot(projection=MyProjection(param1=param1_value))
其中 MyProjection 是一个实现了
_as_mpl_axes
方法的对象。
一个功能齐全且注释详尽的示例在 自定义投影 中。matplotlib.projections.polar
中的极坐标图功能也可能引起你的兴趣。
- matplotlib.projections.get_projection_class(projection=None)[源代码][源代码]#
从名称获取投影类。
如果 projection 为 None,则返回标准矩形投影。
内置投影#
Matplotlib 内置支持极坐标和一些地理投影。更多信息请参见以下页面: