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 中的极坐标图功能也可能引起你的兴趣。

class matplotlib.projections.ProjectionRegistry[源代码][源代码]#

基类:object

已注册投影名称到投影类的映射。

get_projection_class(name)[源代码][源代码]#

从其 名称 获取投影类。

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

返回当前所有已注册的投影名称。

register(*projections)[源代码][源代码]#

注册一组新的投影。

matplotlib.projections.get_projection_class(projection=None)[源代码][源代码]#

从名称获取投影类。

如果 projection 为 None,则返回标准矩形投影。

matplotlib.projections.get_projection_names()[源代码]#

返回当前所有已注册的投影名称。

matplotlib.projections.register_projection(cls)[源代码][源代码]#

内置投影#

Matplotlib 内置支持极坐标和一些地理投影。更多信息请参见以下页面: