функция не работает во время интерактивного цикла в python - PullRequest
0 голосов
/ 07 февраля 2020

Сначала посмотрите мой код.

    coordinates_length = 0
    while coordinates_length != 2:
        cor_list = []
        DataCursor(scat, index, depth)
        plt.show()
        coordinates_length = len(cor_list)

То, что я привязал, было «интерактивным» циклом. На графике я выбираю две координаты и в зависимости от количества выбранных пиков график снова отображается или выполняется следующий шаг.

Это работает, когда я выбрал две координаты и плавно следую приведенным ниже инструкциям. код. Однако, если я выбрал больше двух или меньше двух, произошла какая-то ошибка.

Кажется, коды просто следуют за бесконечным циклом.

Как я могу исправить этот код ??

1 Ответ

0 голосов
/ 07 февраля 2020

-------- Обновление по автору ----------

Теоретически в коде вопроса не было ошибок. Скорее, похоже, возникла проблема с прорисовкой.

Первоначальный код был:

        fig = plt.figure()
        ax = fig.add_subplot(1, 1, 1)
        ax.invert_yaxis()
        ax.axvline(x=firstimg, color='red', linestyle='--')
        scat = ax.scatter(index, depth, s=7, c= 'grey')


        coordinates_length = 0
        while coordinates_length != 2:
            cor_list = []
            DataCursor(scat, index, depth)
            plt.show()
            coordinates_length = len(cor_list)

А потом я изменил код:

            coordinates_length = 0
            while coordinates_length != 2:
                fig = plt.figure()
                ax = fig.add_subplot(1, 1, 1)
                ax.invert_yaxis()
                ax.axvline(x=firstimg, color='red', linestyle='--')
                scat = ax.scatter(index, depth, s=7, c= 'grey')
                cor_list = []
                DataCursor(scat, index, depth)
                plt.show()
                coordinates_length = len(cor_list)

вот так , И это работает.

...