matplotlib中的axes.flat有什么作用?

Sashaank Sekar:

我已经看到使用matplotlib的各种程序,这些程序使用axes.flat函数,例如以下代码:

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

这是做什么的?

重要性:

让我们看一个最小的示例,其中我们使用创建了一些轴plt.subplots,也看到了这个问题

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是一个小数轴数组,

print(type(axes))
> <type 'numpy.ndarray'>
print(axes.shape)
> (3L, 2L)

axes.flat不是函数,而是的属性numpy.ndarraynumpy.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

作为数组的插入器,您可以使用它遍历3x2轴数组中的所有轴,

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

对于每次迭代,它将从该数组中产生下一个轴,这样您就可以轻松地绘制到单个循环中的所有轴。

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

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

从外部看,两者之间没有区别。但是,迭代器实际上并不会创建新数组,因此可能会稍微快一些(尽管在matplotlib axes对象的情况下这永远不会引起注意)。

flat1 = [ax for ax in axes.flat]
flat2 = axes.flatten()
print(flat1 == flat2)
> [ True  True  True  True  True  True]

与分别迭代行和列的简单方法相比,迭代扁平化的axiss数组的优点是您可以节省一个循环。

for row in axes:
    for ax in row:
        ax.scatter(...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

范围在matplotlib中实际上有什么作用?

来自分类Dev

HTML中的“ {%”有什么作用?

来自分类Dev

Java中的“ !!〜”有什么作用?

来自分类Dev

在球拍中“ <-”有什么作用?

来自分类Dev

点参数对matplotlib中的小提琴图有什么作用

来自分类Dev

为什么matplotlib直方图的“ normed”参数没有作用?

来自分类Dev

matplotlib`hold`关键字参数有什么作用?

来自分类Dev

matplotlib的mpl_toolkits.axes_grid1中的host_subplot参数是什么?

来自分类Dev

R包中的“ LinkingTo”有什么作用?

来自分类Dev

AddJsonFile中的“可选”参数有什么作用?

来自分类Dev

rollapply中的“ align”参数有什么作用?

来自分类Java

Java中的AtomicLong有什么作用?

来自分类Python

tkinter中的“ weight”有什么作用?

来自分类Javascript

JavaScript中的':'(冒号)有什么作用?

来自分类Dev

在groupby中,squeeze = True有什么作用?

来自分类Dev

XPath中的contains()有什么作用?

来自分类Linux

Linux中典型的./configure有什么作用?

来自分类Python

在numpy中,[:, None]的选择有什么作用?

来自分类Dev

Hybris中的平台更新有什么作用?

来自分类Linux

bash脚本中的if语句有什么作用?

来自分类Dev

ar中的“ rcs”选项有什么作用?

来自分类Dev

特征中的“ where”子句有什么作用?

来自分类Dev

HTML中的`#`属性有什么作用?

来自分类Dev

Cypher查询中的逗号有什么作用?

来自分类Dev

ConcurrentExclusiveSchedulerPair中的maxItemsPerTask有什么作用?

来自分类Dev

Bolt CMS中的“堆栈”有什么作用?

来自分类Dev

LINQ中的Include()有什么作用?

来自分类Javascript

Rails中的j函数有什么作用?

来自分类Dev

Laravel中的make()方法有什么作用?

TOP 榜单

热门标签

归档