首页 > 解决方案 > 在python中使用for循环的子图

问题描述

在此处输入图像描述

fig, axes = plt.subplots(1, len(num_col), figsize=(100, 30))
for j,k in enumerate(num_col):
    sb.boxplot(y = k, data=data,ax = axes[j],)

我使用上面的代码制作了这个子图,但我想让它更清楚
我想清楚地看到 y 标签并为子图制作更多行。

标签: python-3.xpandassubplot

解决方案


我想让它更清楚。我想看清楚你的标签

对于这个问题,您需要使用subplots.adjust和 ylabels fontsize

为子图制作更多行。

检查下面的修改代码

import numpy as np
import matplotlib.pylab as plt
import seaborn as sb

data = sb.load_dataset("tips")
num_col = data.select_dtypes(include=[np.number]).columns.tolist()
rows = 2
if((((len(num_col) + 1)/rows)%rows) ==0): #when num of cols are divisable by rows
    cols = (len(num_col)+1)/rows
else:
    cols = ((len(num_col)+1)/rows) + ((len(num_col)/rows)%rows)

fig, axs = plt.subplots(rows,cols, figsize=(10,10))
fig.subplots_adjust(hspace = 0.1, wspace=0.5)
axs = axs.ravel()
for j,k in enumerate(num_col):
    b = sb.boxplot(y = k, data=data,ax = axs[j],)
    b.set_ylabel(k,fontsize=20)

在此处输入图像描述

PS:提供少量数据样本和完整代码并导入以使其可重现始终是一个好习惯。


推荐阅读