sementara fungsi tidak berfungsi selama perulangan interaktif dengan python

Pertama, lihat kode saya.

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

Yang ingin saya lakukan adalah perulangan 'interaktif'. Dalam plotnya, saya memilih dua koordinat dan berdasarkan jumlah pilihan yang saya pilih, plot tersebut ditampilkan lagi atau ikuti langkah berikutnya.

Ini berfungsi, ketika saya memilih dua koordinat dan mengikuti kode di bawah ini dengan lancar. Namun, jika saya memilih lebih dari dua atau kurang dari dua, terjadi kesalahan.

Tampaknya kode-kode tersebut hanya mengikuti perulangan tanpa akhir.

Bagaimana saya bisa memperbaiki kode ini??


person Dong-gyun Kim    schedule 07.02.2020    source sumber
comment
Harap perbarui pertanyaan Anda dengan teks lengkap kesalahan yang terjadi.   -  person quamrana    schedule 07.02.2020
comment
Kode Anda agak minimal (Anda mungkin melebih-lebihkan contoh minimal yang dapat direproduksi). Di mana cor_list diperbarui dalam loop? Selama tidak berubah, kode ini akan berulang.   -  person Jongware    schedule 07.02.2020


Jawaban (1)


--------Pembaruan oleh penulis----------

Secara teori, tidak ada kesalahan kode pada pertanyaan. Tampaknya, ada masalah dengan pembuatan plot.

Kode aslinya adalah:

        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)

Dan kemudian saya mengubah kodenya:

            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)

seperti ini. Dan itu berhasil.

person Dong-gyun Kim    schedule 07.02.2020