import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,2*np.pi,500)
y = np.sin(x**2)
fig, axes = plt.subplots(2,2)
for current_axis in axes:
current_axis.plot(x,y)
结果是:
AttributeError: 'numpy.ndarray' object has no attribute 'plot'
如果不进行迭代但执行以下操作,则可以使用
axes[0, 0].plot(x, y)
axes[1, 1].plot(x, x**2)
为什么我不能迭代相同的轴数组对象?] >>
将numpy作为np导入matplotlib.pyplot作为plt x = np.linspace(0,2 * np.pi,500)y = np.sin(x ** 2)图,轴= plt.subplots(2,2 ),用于以轴表示的current_axis:current_axis.plot(x,y)结果为:...
这是因为Axes对象是尺寸为2x2的ndarray,这意味着每一行都是另一个数组。解决方案很简单,只需将.flatten()
添加到Axes对象即可使其一维:
您的轴数组是二维的。一个数组,一个数组,一个图。如果仅将1用于循环,则仅访问第一个维度。您可以将2用于循环,也可以