Pandas 如何迭代打印到正确的子批次轴

Pandas 如何迭代打印到正确的子批次轴,pandas,matplotlib,seaborn,axes,Pandas,Matplotlib,Seaborn,Axes,假设我有两个数据帧: a = pd.DataFrame({"A": [2,3,4,5], "B": [4,8,9,10], "C" :[63,21,23,4], "D": [56,32,12,2] }) b = pd.DataFrame({"A": [

假设我有两个数据帧:

a = pd.DataFrame({"A": [2,3,4,5], 
                  "B": [4,8,9,10], 
                  "C" :[63,21,23,4],
                  "D": [56,32,12,2]
                 })

b = pd.DataFrame({"A": [12,13,14,15], 
                  "B": [41,81,91,10], 
                  "C": [3,2,5,6], 
                  "D": [4,2,3,4]
                 })
我希望能够用相同的名称在每个数据帧上的变量之间绘制散点图。我想出了以下代码:

fig, ax = plt.subplots((round(len(b)/2)),2,figsize=(10,10))
for i, col in enumerate(b.columns):

    sns.regplot(x=a[col], y=b[col], ax=ax[i,0])
    plt.title(col)
    sns.regplot(x=a[col], y=b[col], ax = ax[i,1])
    plt.title(col)


plt.tight_layout()
然而,这产生了以下数字:

我想要的是:

我知道这很简单,但我就是想不出第二个ax的循环方式[I,1]。 非常感谢

  • ax
    是一个
    numpy
    数组,因此它更易于使用,从而使数组变平并更易于索引
    • ax
      在OP中是一个
      (2,2)
      数组,它
      .ravel
      扁平化为
      (4,2)
  • 有关子地块轴阵列的更多详细信息,请参见以下SO问题:
fig,ax=plt.子图((圆形(len(b)/2)),2,figsize=(10,10))
v=ax.ravel()
对于i,枚举中的列(b列):
sns.regplot(x=a[col],y=b[col],ax=v[i])
v[i].集xlabel(f'{col}{u a')
v[i].集合标签(f'{col}}\u b')
v[i]。设置标题(列)
plt.紧_布局()