python中每行具有不同子块数的子绘图

python中每行具有不同子块数的子绘图,python,plot,Python,Plot,同样,我对python非常陌生。下面我提供了我的代码(用于特征选择的分类),而不是数据,因为它是高维的,但我相信问题与数据无关。我的问题有两个:我希望所有子地块都有轴标签,我想知道如何创建子地块,其中每行的子地块数量可以不同(我有14个子地块,目前分为三行): 对于每个子批次的标签,可以首先创建包含这些标签的列表 xlabelList = [xlabel0, xlabel1 ....,xlabel13] ylabelList = [ylabel0, ylabel1,....,ylabel13]

同样,我对python非常陌生。下面我提供了我的代码(用于特征选择的分类),而不是数据,因为它是高维的,但我相信问题与数据无关。我的问题有两个:我希望所有子地块都有轴标签,我想知道如何创建子地块,其中每行的子地块数量可以不同(我有14个子地块,目前分为三行):


对于每个子批次的标签,可以首先创建包含这些标签的列表

xlabelList = [xlabel0, xlabel1 ....,xlabel13]
ylabelList = [ylabel0, ylabel1,....,ylabel13]
此外,不需要为循环定义额外的变量n_subject。对于打印,我将进行以下更改:

for j in range(14):

    #print("For Subject : ", j+1)
    y = allData['labels']
    X = allFeatures[j*120:(j+1)*120,:]

    svc = SVC(kernel="linear",C=1)
    rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(2),
          scoring='accuracy')
    rfecv.fit(X, y.ravel())

    locInd = np.unravel_index(j, (3,5))    
    axs[locInd].plot(range(1, len(rfecv.grid_scores_) + 1), rfecv.grid_scores_)
    axs[locInd].set_xlabel(xlabelList[j])
    axs[locInd].set_ylabel(ylabelList[j])
plt.show()

非常感谢!x和y标签都是一样的,我怎么能在不手动输入的情况下将文本重复14次呢?此外,我尝试(只是为了测试)轴标签为:[a,a,a,a,a,a,a,a,a,a,a,a,a],但这似乎是无效的语法-为什么?标签必须是字符串。如果所有标签都相同,则只需执行以下操作:axs[locInd].set_xlabel(xlabel),无需列表。
for j in range(14):

    #print("For Subject : ", j+1)
    y = allData['labels']
    X = allFeatures[j*120:(j+1)*120,:]

    svc = SVC(kernel="linear",C=1)
    rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(2),
          scoring='accuracy')
    rfecv.fit(X, y.ravel())

    locInd = np.unravel_index(j, (3,5))    
    axs[locInd].plot(range(1, len(rfecv.grid_scores_) + 1), rfecv.grid_scores_)
    axs[locInd].set_xlabel(xlabelList[j])
    axs[locInd].set_ylabel(ylabelList[j])
plt.show()