所有,
我正在尝试使用subplots函数和Seaborn库来绘制两个Factorplots 。我可以使用下面的代码分别绘制两个图。但是,seaborn正在实际图下方生成额外的图(请参见下图)。有没有一种方法可以避免seaborn生成多余的空图?我试图plt.close摆脱地块,但不幸的是,它只是关闭了1个地块。此外,我试图将图例移出地块并在地块旁边显示图例。有没有简单的方法可以做到这一点。我尝试legend_out使用seaborn包装提供的产品,但是没有用。
我的代码:
f,axes=plt.subplots(1,2,figsize=(8,4))
sns.factorplot(x="borough", y="pickups", hue="borough", kind='bar', data=n, size=4, aspect=2,ax=axes[0])
sns.factorplot(x="borough", y="pickups", hue="borough", kind='bar', data=low_pickups, size=4, aspect=2,ax=axes[1])
plt.close(2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
以上代码的输出:
注意:我是python的新手,请在您的代码中提供解释。
数据帧的输出
#n dataframe
{'borough': {0: 'Bronx', 1: 'Brooklyn', 2: 'EWR', 3: 'Manhattan', 4: 'Queens', 5: 'Staten Island', 6: 'Unknown'}, 'pickups': {0: 50.66705042597283, 1: 534.4312687082662, 2: 0.02417683628827999, 3: 2387.253281142068, 4: 309.35482385447847, 5: 1.6018880957863229, 6: 2.0571804140650674}}
#low_pickups dataframe
{'borough': {2: 'EWR', 5: 'Staten Island', 6: 'Unknown'}, 'pickups': …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此代码并排绘制两个分布图
fig,(ax1,ax2) = plt.subplots(1,2)
sns.displot(x =X_train['Age'], hue=y_train, ax=ax1)
sns.displot(x =X_train['Fare'], hue=y_train, ax=ax2)
Run Code Online (Sandbox Code Playgroud)
它返回以下结果(两个空的子图,后跟一个分布在两行上的图)-
如果我用 violinplot 尝试相同的代码,它会按预期返回结果
fig,(ax1,ax2) = plt.subplots(1,2)
sns.violinplot(y_train, X_train['Age'], ax=ax1)
sns.violinplot(y_train, X_train['Fare'], ax=ax2)
Run Code Online (Sandbox Code Playgroud)
为什么 displot 返回不同类型的输出,我该怎么做才能在同一行上输出两个图?