ที่ไหนเพื่อให้ set_xticks และ set_xticklabels ในการเคลื่อนไหวเพื่อที่ป้ายชื่ออย่างถูกต้องโดยไม่มี"flickering?"

0

คำถาม

ปลั๊กอินสำหรับไพธอน 3.9 บแมคกับ O 11.6.1

ฉันกำลังใช้ผู้เล่นชั้นเรียนกำหนดไว้ใน การจัดการการวางแผนปรับอัตโนมัติใน matplotlib การกระตุ้นการทำงานศูนย์ควบคุม kde ในโมดูล ที่จะออกแบบงานซึ่งสร้างการให้มีการเคลื่อนไหวเมื่อนั้นจะถูกวางไว้บน tkinter นงานซึ่งอยู่ในระดับบนสุดงหน้าต่าง แต่ละเฟรมของให้มีการเคลื่อนไหวเมื่อต้องใช้ของ heatmap ปรากฎตัวขึ้นเหนือเป็นที่สัมพันธ์กันแถบแผน เป็น colorbar ดูเหมือนคนต่อไป heatmap. ที่ heatmap ป้ายของแกนเป็นเงื่อนถูกจัดเก็บไว้ในช่อง

นี่คือของฉันฟังก์ชันอยู่ที่ไหน root เป็นของฉันหลัก tkinter หน้าต่างป้ายของแกนจะถูกจัดเก็บไว้ใน channels, M_list คือรายชื่อของ matrices แล้ว bar_list คือรายชื่อของรายชื่ออยู่ที่ไหนกันและอยู่ในรายชื่อ bar_list มีความยาวเท่ากับจำนวนของช่องแล้ว bar_list ตัวมันเองมีความยาวเท่ากับจำนวนของ matrices.

def heatplot_barplot_animation_combined(root,channels,M_list,bar_list):
    num_times=len(M_list)-1

    fig, ax = plt.subplots(2)

    plot_window = Toplevel(root)
    canvas = FigureCanvasTkAgg(fig, master=plot_window)
    canvas.draw()
    canvas.get_tk_widget().pack(side=TOP,fill=BOTH,expand=1)


    def update_graph(i):
        ax[0].cla
        cbar_ax.cla()
        sns.heatmap(ax = ax[0], data = M_list[i], cmap = "coolwarm", cbar_ax = 
        cbar_ax,vmin=0,vmax=1)
        ax[0].set_xticks(range(len(channels)))
        ax[0].set_xticklabels(channels,fontsize=10)
        ax[0].set_yticks(range(len(channels)))
        ax[0].set_yticklabels(channels,fontsize=10)

        ax[1].cla()
        ax[1].bar(channels,bar_list[i])
        ax[1].set_ylim(0, 1)

        fig.suptitle('Frame: '+str(i), fontsize=12)

    divider = make_axes_locatable(ax[0])
    cbar_ax = divider.append_axes("right", size="5%", pad=0.05)

    ani = Player(fig, update_graph, maxi=num_times)

ตัวอย่าง implementation สำหรับ 508 จาก 8 matrices:

channels=['a','b','c','d','e','f','g','i']
Nc=len(channels)
Nt=50
M_list=[np.random.rand(Nc,Nc) for i in range(Nt)]
bar_list=[[random.uniform(0,1) for i in range(Nc)] for t in range(Nt)]
heatplot_barplot_animation_combined(root,channels,M_list,bar_list)

ที่แกเป็น labelled อย่างถูกต้องแต่ป้าย flicker ที่น่ารำคาญเห็นเหมือให้มีการเคลื่อนไหวเมื่อเล่นออกมา

ในทางกลับกันถ้าฉันย้ายไปสี่คนบรรทัดที่ฉันตั้งป้ายของ ax[0] (ค heatmap)ข้างนอกห้องปรับปรุงฟังก์ชันและทันทีเลยใต้มันผลลัพธ์จากการเคลื่อนไหวไม่ได้ flicker แต่ heatmap แกนป้ายต่างๆเป็นตัวเลขพวก 0,1,...,7 และไม่ใช่รายการในช่อง

ดังนั้นฉันต้องดิ้นรนเพื่อป้ายชื่อที่แกอย่างถูกต้องและต้องกำจัดกะพริบไปเลย

animation matplotlib python tkinter
2021-11-23 15:14:49
1

คำตอบที่ดีที่สุด

0

ฉันแก้ปัญหาโดยไม่ได้พยายามที่จะตั้งค่าทั้งหมด ax[0] คุณสมบัติและการเพิ่ม xticklabels=channels, yticklabels=channels เป็นตัวเลือกต้อง sns.heatmap. ฉันยังไม่แน่ใจว่าการหมุนภาพของฉัน y-ป้ายของแกนโดยไม่มี encountering flickering นะ ดูเหมือนมีแกนทรัพย์สินถูกแก้ไขหลังจาก heatmap จะกล่าวแนะนำ flickering ของบางอย่าง.

2021-11-23 17:49:51

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่