Как правильно перебрать субплоты рисунка matplotlib, чтобы показать окончательное значение оси Y каждой строки? - PullRequest
0 голосов
/ 29 октября 2019

В настоящее время у меня есть фигура matplotlib с 16 субплотами, 4 столбцами и 4 строками. У меня есть следующий код, который перебирает каждый подспотт и отображает разные данные на каждом из 16 подплотов:

fac_list = [one, two, three, four, five, six, seven, eight, nine, ten , eleven, twelve, 
thirteen, fourteen, fifteen, sixteen]
color = ['blue','red']

ds_i = 0
for row in range(0,subplot_shape[0]):
    for col in range(0,subplot_shape[1]):
        fac = fac_list[ds_i]
            plot('total', 
                    currentname=fac,
                    subplot_index=(row,col),
                    linestyle='-',
                    marker='.',
                    label='NEW',
                    color=color[0])
            leg2 = axes[row][col].legend(loc='upper left',bbox_to_anchor=(-0.10, 1.04), prop={'size':8},
                frameon=False, markerscale=0, handlelength=0)
            for line, text in zip(leg2.get_lines(), leg2.get_texts()):
                text.set_color(line.get_color())
            #axes[row][col].text(1.1,new_obj['total'].values[-1],new_obj['total'].values[-1],horizontalalignment='center',fontsize=5, rotation=45,
                #transform=axes[row][col].transAxes, color=color[0])
        ds_i += 1

В настоящее время я получил его, поэтому закомментированные строки показывают окончательное значение оси Yтолько из последнего элемента в fac_list (шестнадцать), но это значение отображается на каждом субплоте на моем рисунке, а не только на последнем субплоте (под которым он должен отображаться). Как правильно выполнить циклическое переключение между вспомогательными участками, чтобы конечное значение оси Y для каждого элемента в fac_list отображалось на каждом соответствующем вспомогательном участке (одно в fac_list отображается на вспомогательном участке (0,0), два в fac_list отображаются на вспомогательном участке (0)1) и т. Д.)Ничто из того, что я пробовал, до сих пор не сработало.

1 Ответ

0 голосов
/ 29 октября 2019

Раскомментируйте строку и поместите ее на тот же уровень отступа, что и для цикла for для столбца

for row in range(0,subplot_shape[0]):
    for col in range(0,subplot_shape[1]):
    ...
    ...

        for line, text in zip(leg2.get_lines(), leg2.get_texts()):
            text.set_color(line.get_color())

# Place the following line as it is in this answer
    axes[row][col].text(1.1,new_obj['total'].values[-1],new_obj['total'].values[-1],
                        horizontalalignment='center',fontsize=5, rotation=45,
                        transform=axes[row][col].transAxes, color=color[0])
...