我想将熊猫数据框的三列绘制为2x2子图布局:
Trx
这给了我想要的结果(右下角有一个空图)。但是,如果我尝试使用
向所有这些子图中添加另一列rand=np.random.random((12,6))
df=pd.DataFrame(columns=['a','b','c','d','e','f'],data=rand)
ax=df.loc[:,'a':'c'].plot(subplots=True,layout=(2,2))
发生以下错误:
df.loc[:,'d':'f'].plot(subplots=True,ax=ax)
有没有解决此问题的方法,而不必重新排列子图的布局?
答案 0 :(得分:1)
如果是
ax=df.plot(subplots=True,layout=(2,2))
ax
是具有4个元素的2x2数组。那是4个轴,如果df
仅包含3列,则最后一个轴不可见。当再次绘制3列时,您需要提供3根轴,而不是全部4根。选项是将ax
数组索引为要使用的列数。
df2.plot(subplots=True,ax=ax.flatten()[:3])
完整示例:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
rand=np.random.random((12,6))
df=pd.DataFrame(columns=['a','b','c','d','e','f'],data=rand)
ax=df.loc[:,'a':'c'].plot(subplots=True,layout=(2,2))
df.loc[:,'d':'f'].plot(subplots=True,ax=ax.flatten()[:3])
plt.show()