Как отобразить значения второй оси Y в matplotlib?

Мне нравится отображать значения на второй оси Y (справа по вертикали) в matplotlib. Мой код следующий.

def main(files):
    plt.style.use('ggplot')
    fig, ax1 = plt.subplots()
    ax2 = ax1.twinx()
    ax1.set_xlabel('iteration')
    losslabel = ax1.set_ylabel('loss')
    losslabel.set_color("red")
    accuracylabel = ax2.set_ylabel('accuracy %')
    accuracylabel.set_color("green")
    disp_results(fig, ax1, ax2, loss_iterations, losses, accuracy_iterations, accuracies, accuracies_iteration_checkpoints_ind, fileName, color_ind=i)
    plt.show()


def disp_results(fig, ax1, ax2, loss_iterations, losses, accuracy_iterations, accuracies, accuracies_iteration_checkpoints_ind, fileName, color_ind=0):
    colors = dict(mcolors.BASE_COLORS, **mcolors.CSS4_COLORS)
    acrIterations =[]
    top_acrs = {}
    if accuracies.size:
        if  accuracies.size>4:
            top_n = 4
        else:
            top_n = accuracies.size -1      
        temp = np.argpartition(-accuracies, top_n)
        result_indexces = temp[:top_n]
        temp = np.partition(-accuracies, top_n)
        result = -temp[:top_n]
        for acr in result_indexces:
            acrIterations.append(accuracy_iterations[acr])
            top_acrs[str(accuracy_iterations[acr])]=str(accuracies[acr])

        sorted_top4 = sorted(top_acrs.items(), key=operator.itemgetter(1))
        maxAcc = np.amax(accuracies, axis=0)
        iterIndx = np.argmax(accuracies)
        maxAccIter = accuracy_iterations[-1]
        maxIter =   accuracy_iterations[-1]
        consoleInfo = format('\n[%s]:Test accuracy Vs Train loss [from 0 to %s ] = [Iteration %s]: %s ' %(fileName,maxIter,maxAccIter ,maxAcc))
        plotTitle = format('Test accuracy Vs Train loss(%s) [Iteration %s]: %s ' % (fileName,maxAccIter, maxAcc))
        print (consoleInfo)

        print ('Top 4 accuracies:'+str(sorted_top4))        
        plt.title(plotTitle)
    ax1.plot(loss_iterations, losses, colors['red'])
    ax2.plot(accuracy_iterations, accuracies, colors['green'], label=str(fileName))
    ax2.plot(accuracy_iterations[accuracies_iteration_checkpoints_ind], accuracies[accuracies_iteration_checkpoints_ind], 'o', colors['red'])

График в порядке, только значения правой вертикальной оси не отображаются. Участок здесь.

Как отобразить значения второй оси Y в matplotlib?

Код Python и файлы журнала - это здесь и здесь.

На правой оси есть только одна отметка, #FF0000. Поскольку код не запускается (см. минимальный воспроизводимый пример), это почти все, что можно сказать на данный момент.

ImportanceOfBeingErnest 05.07.2018 09:37

@ImportanceOfBeingErnest Я обновил код и файл журнала

batuman 05.07.2018 10:36

Вторая строка ax2.plot не позволяет отображать значения на правой оси y. Я удалил его, и он отображает

batuman 06.07.2018 04:46
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
68
0

Другие вопросы по теме