ในขณะที่ฟังก์ชันไม่ทำงานระหว่างการวนซ้ำแบบโต้ตอบในหลาม

ก่อนอื่นให้ดูรหัสของฉัน

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

สิ่งที่ฉันผูกติดอยู่กับการทำคือการวนซ้ำแบบ 'โต้ตอบ' ในพล็อต ฉันเลือกพิกัดทั้งสองและขึ้นอยู่กับจำนวนการเลือกที่ฉันเลือก พล็อตจะแสดงอีกครั้งหรือทำตามขั้นตอนถัดไป

มันใช้งานได้เมื่อฉันเลือกพิกัดทั้งสองและทำตามโค้ดด้านล่างอย่างราบรื่น อย่างไรก็ตาม ถ้าฉันเลือกมากกว่าสองหรือน้อยกว่าสอง ก็แสดงว่ามีข้อผิดพลาดเกิดขึ้น

ดูเหมือนว่ารหัสจะเป็นไปตามการวนซ้ำไม่รู้จบ

ฉันจะแก้ไขรหัสนี้ได้อย่างไร??


person Dong-gyun Kim    schedule 07.02.2020    source แหล่งที่มา
comment
โปรดอัปเดตคำถามของคุณด้วยข้อความเต็มของข้อผิดพลาดที่เกิดขึ้น   -  person quamrana    schedule 07.02.2020
comment
รหัสของคุณมีเพียงเล็กน้อย (คุณอาจพูดเกินจริงตัวอย่างที่ทำซ้ำได้น้อยที่สุด) cor_list ได้รับการอัพเดตในลูปที่ไหน? ตราบใดที่ไม่มีการเปลี่ยนแปลง รหัสนี้จะวนซ้ำ   -  person Jongware    schedule 07.02.2020


คำตอบ (1)


--------- อัพเดตโดยผู้เขียน ----------

ตามทฤษฎีแล้ว ไม่มีข้อผิดพลาดในโค้ดในคำถาม แต่ดูเหมือนว่ามีปัญหากับการวางแผน

รหัสเดิมคือ:

        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)

แบบนี้. และมันก็ได้ผล

person Dong-gyun Kim    schedule 07.02.2020