matplotlib.projections#

将数据空间映射到屏幕空间的不可分离变换。

投影被定义为 Axes 子类。它们包含以下元素:

  • 从数据坐标到显示坐标的变换。

  • 该变换的逆变换。例如,这用于将鼠标位置从屏幕空间转换回数据空间。

  • 用于网格线、刻度和刻度标签的变换。自定义投影通常需要将这些元素放置在特殊位置,Matplotlib 提供了一个工具来帮助实现这一点。

  • 设置默认值(覆盖 cla),因为直角坐标轴的默认值可能不合适。

  • 定义坐标轴的形状,例如,一个椭圆形坐标轴,用于绘制图形背景和剪裁任何数据元素。

  • 为投影定义自定义定位器和格式化器。例如,在地理投影中,即使数据以弧度为单位,以度为单位显示网格可能更方便。

  • 设置交互式平移和缩放。这被作为一个“高级”功能留给读者自行探索,但在 matplotlib.projections.polar 中有一个极坐标图的示例。

  • 任何用于额外便利或功能的附加方法。

一旦定义了投影坐标轴,它可以通过两种方式使用:

  • 通过定义类属性 name,投影坐标轴可以与 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[source]#

基类: object

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

get_projection_class(name)[source]#

根据其 名称 获取投影类。

get_projection_names()[source]#

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

register(*projections)[source]#

注册一组新的投影。

matplotlib.projections.get_projection_class(projection=None)[source]#

根据其名称获取投影类。

如果 projection 为 None,则返回标准直角投影。

matplotlib.projections.get_projection_names()[source]#

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

matplotlib.projections.register_projection(cls)[source]#

内置投影#

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