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
中的极坐标图功能也可能引起您的兴趣。
- matplotlib.projections.get_projection_class(projection=None)[source]#
根据其名称获取投影类。
如果 projection 为 None,则返回标准直角投影。
内置投影#
Matplotlib 内置支持极坐标和一些地理投影。更多信息请参阅以下页面: