首页技术文章正文

向任意位置添加坐标轴

更新时间:2022-04-19 来源:黑马程序员 浏览量:

  matplotlib支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区域的限制。pyplot模块可以使用axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。axes()函数的语法格式如下:

axes(arg=None, projection=None, polar=False, aspect, frame_on, **kwargs)

  该函数常用参数的含义如下。

  (1)参数arg支持None、4-tuple中任一取值,每种取值的含义如下。

  .None:表示使用subplot(111)添加的与画布同等大小的Axes对象。

  .4-tuple:由4个浮点型元素(取值范围为0~1)组成的元组(left,bottom,width,height),前两个元素left和bottom分别表示坐标轴左侧和底部的边缘到画布的相对距离,用于确定坐标轴的位置;后两个元素width和height分别表示坐标轴的宽度和高度,用于确定坐标轴的相对大小。

  (2)参数projection表示坐标轴的类型,可以是None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'或'rectilinear'中的任一取值,也可以使用自定义的类型。

  (3)参数plolar表示是否使用极坐标,若设为True,则其作用等价于projection='polar'。

  (4)参数aspect表示坐标轴缩放的比例,可接收'auto'、'equal'、num中任一取值。

  (5)参数frame_on表示是否绘制每个坐标轴的轴脊。

  例如,在距当前画布左侧0.2、画布底部0.5的位置上添加一个宽度为0.3、高度为0.3的坐标系;在距画布左侧0.6、画布底部0.4的位置上添加一个宽度为0.2、高度为0.2的坐标系,具体代码如下。

import matplotlib.pyplot as plt
ax = plt.axes((0.2, 0.5, 0.3, 0.3))
ax.plot([1, 2, 3, 4, 5])
ax2 = plt.axes((0.6, 0.4, 0.2, 0.2))
ax2.plot([1, 2, 3, 4, 5])
plt.show()

  运行程序,效果如图6-1所示。

1650347648496_在画布中添加多个坐标系.png

  图6-1 在画布中添加多个坐标系

  从图6-1中可以看出,坐标系的位置和大小都是自定义的。

  除此之外,还可以使用Figure类对象的add_axes()方法在当前画布的任意位置添加Axes类对象。

分享到:
在线咨询 我要报名
和我们在线交谈!