fig.axes возвращает больше осей, чем я инициировал. (python matplotlib) - PullRequest
0 голосов
/ 07 августа 2020

Я запускаю ax1 и делаю несколько осей с помощью ax1.twinx (). Однако, когда я создаю 3 оси, fig.axes выводит 6 объектов осей, а когда я создаю 4 оси, выводится 8 объектов. Это почему? Мой код ниже.

        import matplotlib.pyplot as plt
        color_lst = ["tab:blue", "tab:orange", "tab:green", "tab:red", "tab:purple", "tab:brown", "tab:pink", "tab:gray", "tab:olive", "tab:cyan"]
        fig, ax1 = plt.subplots()
        
        plt.xlabel("Run number")

        color = color_lst[0]
        ax1.plot(range(len(data_arr[0])), data_arr[0], label = param_names[0], color = color)
        ax1.set_ylabel(param_names[0])
        ax1.yaxis.label.set_color(color)
        ax1.spines["right"].set_edgecolor(color)
        ax1.tick_params(axis='y', colors=color)

        ax_lst = [ax1.twinx() for i in range(len(data_arr))]

        i=0
        for ax in ax_lst[1:]:
            i+=1
            color = color_lst[i]
            ax = ax1.twinx()
            ax.plot(range(len(data_arr[i])), data_arr[i], label = param_names[i], color = color)
            ax.set_ylabel(param_names[i])

            ax.spines["right"].set_position(("outward", (i-1)*80)) #Setting axis position offset
            #Coloring all parts of the axes
            ax.spines["right"].set_edgecolor(color)
            ax.yaxis.label.set_color(color)
            ax.tick_params(axis='y', colors=color)

        print("AX LIST: " + str(fig.axes))
        comp_ax_lst = fig.axes
        comp_ax_lst[1].remove()

Что побудило меня задать этот вопрос, так это то, что я не могу удалить черную правую ось Y, идущую от 0 до 1 на следующем графике, который сделан с использованием кода выше. Фигурка со странной черной правой осью

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...