For 在 for 循环中配置 matplotlib 子图
For to configure matplotlib subplots within a for loop
我正在尝试遍历 Pandas 数据框中的一些数据并绘制成不同的子图,但不太确定我做错了什么。
代码如下:
df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
print(col)
axes[i] = df2[col].plot(kind="box")
如何填充其他子图?
您需要将坐标轴作为参数传递给绘图函数。沿着这些线的东西:
df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
print(col)
df2[col].plot(kind="box", ax=axes[i])
在您的示例中,您正在重新定义“轴”的元素。相反,您定义一次轴,然后告诉绘图函数要使用哪个轴进行绘图。
有一种更简单的方法,您只需要使用选项 subplots=True
执行 df.plot
,然后更改异常值,垂直 (layout=(4,1)
):
df2.plot(kind='box',subplots=True, layout=(4,1), figsize=(8,8))
plt.show()
或者,如果您希望子图水平分布 (layout=(1,4)
):
df2.plot(kind='box',subplots=True, layout=(1,4),figsize=(15,8))
plt.show()
最后,您可以通过以下方式将所有箱线图放在一起:
df2.plot(kind='box', figsize=(8,8))
plt.show()
有关如何使用 pandas 进行可视化的更多信息,请查看 documentation。
我正在尝试遍历 Pandas 数据框中的一些数据并绘制成不同的子图,但不太确定我做错了什么。
代码如下:
df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
print(col)
axes[i] = df2[col].plot(kind="box")
如何填充其他子图?
您需要将坐标轴作为参数传递给绘图函数。沿着这些线的东西:
df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
print(col)
df2[col].plot(kind="box", ax=axes[i])
在您的示例中,您正在重新定义“轴”的元素。相反,您定义一次轴,然后告诉绘图函数要使用哪个轴进行绘图。
有一种更简单的方法,您只需要使用选项 subplots=True
执行 df.plot
,然后更改异常值,垂直 (layout=(4,1)
):
df2.plot(kind='box',subplots=True, layout=(4,1), figsize=(8,8))
plt.show()
或者,如果您希望子图水平分布 (layout=(1,4)
):
df2.plot(kind='box',subplots=True, layout=(1,4),figsize=(15,8))
plt.show()
最后,您可以通过以下方式将所有箱线图放在一起:
df2.plot(kind='box', figsize=(8,8))
plt.show()
有关如何使用 pandas 进行可视化的更多信息,请查看 documentation。