python中axes什么意思_matplotlib中的axes.flat是做什么的?</p> <pre><code>for i, ax in enumerate(axes.flat): </code...

import matplotlib.pyplot as plt

fig, axes = plt.subplots(ncols=2,nrows=3, sharex=True, sharey=True)

for i, ax in enumerate(axes.flat):

ax.scatter([i//2+1, i],[i,i//3])

plt.show()

这里,axes是轴的numpy的阵列,

print(type(axes))

>

print(axes.shape)

> (3L, 2L)

axes.flat不是功能,它是numpy.ndarray的一个属性:numpy.ndarray.flat

ndarray.flat 数组上的一维迭代器。

这是一个numpy.flatiter实例,其行为类似于Python的内置迭代器对象,但不是其子类。

实施例:

import numpy as np

a = np.array([[2,3],

[4,5],

[6,7]])

for i in a.flat:

print(i)

这将打印数2 3 4 5 6 7。

作为阵列上的迭代符,则可以用它来循环在从轴的3×2的阵列中的所有轴,

for i, ax in enumerate(axes.flat):

对于每次迭代,将来自该阵列产生的下一个坐标轴,使得您可以轻松地在单个循环中绘制所有坐标轴。

另一种方法是使用axes.flatten(),其中flatten()是numpy数组的方法。它不是迭代器,而是返回数组的扁平版本:

for i, ax in enumerate(axes.flatten()):

从外部看没有区别。但是迭代器实际上并不创建新的数组,因此可能会稍微快一点(尽管这对于matplotlib轴对象来说永远不会显而易见)。

flat1 = [ax for ax in axes.flat]

flat2 = axes.flatten()

print(flat1 == flat2)

> [ True True True True True True]

迭代轴阵列的扁平版本具有以下优点:你将节省一个环,相对于遍历行和单独列的简单方法,

for row in axes:

for ax in row:

ax.scatter(...)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值