Одинаковый размер графика с разными подзаголовками

#python #matplotlib #subplot

#python #matplotlib #подзаголовок

Вопрос:

У меня небольшая проблема, я создал много разных подзаголовков. Но я хотел бы всегда иметь одинаковый размер для графиков в подзаголовках. Это мой результат и мой сценарий.

Спасибо

     for univers in dict_contrib:
    number_plot = 2
    test = (math.ceil((len(dict_contrib[univers]['MTD'])/number_plot)))
#     fig, axs = plt.subplots((math.ceil((len(dict_contrib[univers]['MTD'])/number_plot))),number_plot,figsize=(12,8),sharex=True)
    fig, axs = plt.subplots((math.ceil((len(dict_contrib[univers]['MTD'])/number_plot))),number_plot, figsize=(11.69,6),gridspec_kw = {'height_ratios':[1]*test,
                                                                                                                                      'width_ratios':[1,1]},sharex=True)
    fig.subplots_adjust(bottom=0.1, top=1)
    fig.suptitle( f'Contributions - MTD {univers}',y=1,x=0)
    for ax,ptf in zip(axs,split_dict(dict_contrib[univers]['MTD'],math.ceil((len(dict_contrib[univers]['MTD'])/number_plot)))):
        itera_rows = []
        if not isinstance(ax,np.ndarray) : ax = [ax]
        for rows,ptf_selection in zip(ax,ptf):
            rows.title.set_text(dict_ptf_info[ptf_selection]['name'])
            rows.hlines(y=dict_contrib[univers]['MTD'][ptf_selection]['instrument'], xmin=0, xmax=dict_contrib[univers]['MTD'][ptf_selection]['contribution'],color=dict_contrib[univers]['MTD'][ptf_selection].colors, alpha=0.4, linewidth=8)
            for x, y, tex in zip(dict_contrib[univers]['MTD'][ptf_selection]['contribution'], dict_contrib[univers]['MTD'][ptf_selection].index, dict_contrib[univers]['MTD'][ptf_selection]['contribution']):
                t = rows.text(x, y, round(tex, 2), horizontalalignment='right' if x < 0 else 'left', 
                             verticalalignment='center', fontdict={'color':'red' if x < 0 else 'green', 'size':8})
            rows.spines['right'].set_visible(False)
            rows.spines['left'].set_visible(False)
            rows.spines['top'].set_visible(False)
            rows.axvline(x=0, color='black', linestyle='-', linewidth=1)
            itera_rows.append(rows)
        rows_off = set(ax)-set(itera_rows)
        for charts in list(rows_off):
            charts.axis('off')
    fig.tight_layout()
 

Вывод

Комментарии:

1. seaborn.pydata.org/generated/seaborn . FacetGrid.html

2. Я должен создать другой сюжет, а не только один сюжет со всем сюжетом в

3. Не могли бы вы использовать более одной facetgrid

4. в чем именно вопрос?

5. используется fig.add_axes([left, bottom, width, height]) для ручного размещения осей… matplotlib.org/api/_as_gen/…