जहां डाल करने के लिए set_xticks और set_xticklabels एनीमेशन में इतनी के रूप में लेबल करने के लिए बिना सही ढंग से "चंचल?"

0

सवाल

अजगर 3.9 के साथ मैक पर ओएस 11.6.1

मैं उपयोग कर रहा हूँ, खिलाड़ी वर्ग में परिभाषित किया गया प्रबंध गतिशील साजिश रचने में matplotlib एनीमेशन मॉड्यूल डिजाइन करने के लिए एक समारोह है, जो बनाता है एक एनीमेशन पर रखा जाएगा कि एक tkinter कैनवास में निहित एक उच्चस्तरीय खिड़की. प्रत्येक फ्रेम के एनीमेशन के होते हैं, एक हीटमैप प्रदर्शित होने के ऊपर एक बार इसी साजिश है । एक colorbar प्रकट होता है अगले करने के लिए हीटमैप. हीटमैप अक्ष लेबल तार कर रहे हैं में संग्रहीत चैनल है ।

मेरे यहाँ के समारोह, जहां जड़ है मेरी मुख्य 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)

नमूना कार्यान्वयन के लिए 50 8 से 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)

अक्ष लेबल रहे हैं सही ढंग से, लेकिन लेबल झिलमिलाहट में एक कष्टप्रद तरीके से एनीमेशन के रूप में बाहर निभाता है.

दूसरे हाथ पर, मैं स्थानांतरित अगर चार लाइनों, जहां मैं सेट के लेबल ax[0] (हीटमैप) के बाहर अद्यतन समारोह और तुरंत यह नीचे, जिसके परिणामस्वरूप एनीमेशन करता है, झिलमिलाहट नहीं है, लेकिन हीटमैप अक्ष लेबल रहे हैं नंबर 0,1,...,7 और न प्रविष्टियों में चैनल.

तो, मैं संघर्ष कर रहा हूँ करने के लिए कुल्हाड़ियों लेबल सही ढंग से और खत्म करने के लिए चंचल ।

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

सबसे अच्छा जवाब

0

मैं इस समस्या का हल नहीं की कोशिश कर रहा सेट करने के लिए सभी ax[0] गुण और सिर्फ जोड़ना xticklabels=channels, yticklabels=channels विकल्प के रूप में करने के लिए sns.heatmap. मैं अभी भी यकीन नहीं कैसे करने के लिए बारी बारी से मेरी y-अक्ष लेबल का सामना किए बिना चंचल हालांकि. लगता है जैसे किसी अक्ष संपत्ति के बाद संशोधित हीटमैप का परिचय चंचल के कुछ प्रकार की है ।

2021-11-23 17:49:51

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में