在python中使用for循环的子图

时间:2018-12-12 04:28:25

标签: python-3.x pandas subplot

enter image description here

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标签,并为子图添加更多行。

1 个答案:

答案 0 :(得分:2)

  

我想更清楚一点。   我想清楚地看到y标签

对于此问题,您需要使用subplots.adjust和ylabel 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)

给予

enter image description here

P.S。 :始终最好的做法是提供少量数据样本和完整的代码,并进行导入以使其可重现。