Python 索引器错误:basic程序数组的索引太多

Python 索引器错误:basic程序数组的索引太多,python,pandas,matplotlib,Python,Pandas,Matplotlib,此程序非常简单,但我不知道为什么会出现此错误: 索引器:数组的索引太多 对于df1(甚至不转到df2)会捕获错误。有人能解释我为什么会犯这个错误吗?我认为更大的问题是我不理解的2乘1子图的逻辑是什么 节目如下: import pandas as pd import matplotlib.pyplot as plt x = range(5) y = range(0,10,2) w = x z = y df1 = pd.DataFrame(data = {'col1':x,'col2':y})

此程序非常简单,但我不知道为什么会出现此错误:

索引器:数组的索引太多

对于
df1
(甚至不转到
df2
)会捕获错误。有人能解释我为什么会犯这个错误吗?我认为更大的问题是我不理解的2乘1子图的逻辑是什么

节目如下:

import pandas as pd
import matplotlib.pyplot as plt

x = range(5)
y = range(0,10,2)

w = x
z = y

df1 = pd.DataFrame(data = {'col1':x,'col2':y})
df2 = pd.DataFrame(data = {'col1':w,'col2':z})

fig, axes = plt.subplots(2,1)
df1.plot(ax=axes[0,0])
df2.plot(ax=axes[1,0])

您需要指定正确的索引。由于您使用的是
plt.子地块(2,1)
,因此
对象的长度为2,其中第一个子地块和第二个子地块分别使用索引
[0]
[1]
进行访问。如果您执行
打印(axes.shape)
,您将获得
(2,)
,因此您没有第二个索引。对于
plt.子图(2,2)
打印(轴形状)
将给出
(2,2)
,您可以在其中使用双索引

当有多个列时,可以使用
轴[0,0]
轴[1,0]
轴[0,1]
轴[1,1]
等等。对于单个列,
轴[0,0]
必须替换为
ax[0]
轴[1,0]
必须替换为
ax[1]

fig, axes = plt.subplots(2,1)
print (len(axes))
# 2

df1.plot(ax = axes[0])
df2.plot(ax = axes[1])
替代方法是

axes[0].plot(df1)
axes[1].plot(df2)

您的方式适用于2乘2子地块

fig, axes = plt.subplots(2,2)
print (axes.shape)
# (2, 2)

df1.plot(ax = axes[0,0])
df2.plot(ax = axes[0,1])
df1.plot(ax = axes[1,0])
df2.plot(ax = axes[1,1])

使用
图,轴=plt.子批次(2,1,挤压=假)
如副本所示。