[matplotlib] Artist中的container

Artist对象分为 primitives 和 containers 两种。primitives对象主要是我们想在figure上画出的各类图形对象。containers对象主要用来放置primitives对象,有四种,即 figure、axes、axis和tick。

1.Figure

创建figure:

import matplotlib.pyplot as plt

fig = plt.figure()

使用plt.subplot()和plt.subplot_mosiac()直接生成figure和axes。

figure有自己的primitives特性,也就是说有的primitives对象可以直接在figure上做图,不用创建axes,比如images、lines、patches和text。

import matplotlib.lines as lines

fig = plt.figure()

l1 = lines.Line2D([0, 1], [0, 1], transform=fig.transFigure, figure=fig)
l2 = lines.Line2D([0, 1], [1, 0], transform=fig.transFigure, figure=fig)
fig.lines.extend([l1, l2])

plt.show()

figure包含的artist对象包括:axes、patch、images、legends、patches、lines、texts,以上各特性除patch外均为对应对象的列表,patch是一个Rectangle对象。

2.Axes

在已有的figure上生成新的axes:

# 方法1:
ax1 = fig.add_subplot(211)

代码中三个数字分别表示fig上的axes布局为两横一列,ax1为第一个。

# 方法2:
ax2 = fig.add_axes([0.15, 0.1, 0.7, 0.3])

[]中的四个数字依次为新增axes的原点在figure中x坐标位置,原点在figure中y坐标位置,新增axes的x坐标长,新增axes的y坐标长。

创建的axes将加入fig.axes(一个axes 的list)中,可以使用迭代对figure上的axes进行操作,比如:

for ax in fig.axes:
	ax.grid(True)

从figure中删除axes的方法:

ax1.remove
ax2.remove

axes对象和figure一样,也有对应各种primitive artist对象的特性,以列表形式保存axes上存在的各种primitives,比如axes.patches和axes.lines。
一般通过axes的方法(helper method)创建primitive artist对象,并且将这些对象加入对应的axes上,但也可以自己手动操作,不过介于各类primitives的创建过程,不建议直接向axes.patches等列表中直接添加对象,可以先创建好对象再用axes对象的add_patch方法添加到axes上去。

fig, ax = plt.subplots()
rect = matplotlib.patches.Rectangle((1, 1), width=5, height=12)
ax.add_patch(rect)

除了primitive artist对象,axes还可包含两个container artist对象,即:XAxis和YAxis。

axes包含的artist对象包括:artists、patch、collections(比如散点图)、images、lines、patches、texts、XAxis和YAxis。

3.Axis

axis对象用来容纳tick lines、grid lines、tick标签和axis标签的。
axes有xaxis和yaxis,xaxis可以分别设置左右两边的tick,yaxis可以分别设置上下两侧的tick。

4.Tick

tick包含的特性:

Attributes
tick1line左边或下面的tick线
tick2line右边或上面的tick线
gridline格栅线
label1tick1line的标签
label2tick2line的标签
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值