mpl_toolkits.axisartist.angle_helper.ExtremeFinderCycle#
- class mpl_toolkits.axisartist.angle_helper.ExtremeFinderCycle(nx, ny, lon_cycle=360.0, lat_cycle=None, lon_minmax=None, lat_minmax=(-90, 90))[源代码][源代码]#
-
这个子类处理了以下情况:一个或两个坐标应取模360,或者被限制在不超过特定范围。
- 参数:
- nx, ny整数
每个方向的样本数量。
- lon_cycle, lat_cycle360 或无
如果不是 None,相应方向的值将取模于 lon_cycle 或 lat_cycle;理论上这可以是任何数字,但实际实现假设它是 360(如果不是 None);其他值会导致无意义的结果。
这是通过“解包”变换后的网格坐标来实现的,使得跳跃小于半个周期;然后将其跨度归一化至不超过一个完整周期。
例如,如果值在 [0, 2] 和 [358, 360] 区间的并集中(通常是模360的角度测量),第二个区间的值会被归一化到 [-2, 0],因此现在的值覆盖了 [-2, 2]。如果值在 [5, 1000] 范围内,这会被归一化到 [5, 365]。
- lon_minmax, lat_minmax(float, float) 或 None
如果不是 None,计算出的边界框在相应方向上会被裁剪到给定的范围内。
- __call__(transform_xy, x1, y1, x2, y2)[源代码][源代码]#
计算通过对由
(x1, y1, x2, y2)界定的框应用 transform_xy 得到的边界框的近似值。预期的使用方式是在轴坐标中使用
(x1, y1, x2, y2),并且 transform_xy 是从轴坐标到数据坐标的变换;此方法随后返回实际轴所跨越的数据坐标范围。计算是通过在
(x1, y1, x2, y2)盒子中采样nx * ny个等间距的点,并找到具有极值坐标的点来完成的;然后添加一些填充以考虑有限采样的影响。由于每个采样步骤覆盖了相对范围的 1/nx 或 1/ny,填充是通过将极值坐标所覆盖的范围按这些分数进行扩展来计算的。