어디를 넣어 set_xticks 및 set_xticklabels 에서 애니메이션도록 상표 없이는 제대로"깜박임?"

0

질문

Python3.9Mac OS11.6.1

내가 사용하여 플레이어스 클래스 정의에서 관리하는 동적 음모에 matplotlib 애니메이션 모듈 을 디자인하는 기능,애니메이션을 만듭니다 그에 배치됩니다 tkinter 캔버스에 포함된 최상단 창입니다. 의 각 프레임에 애니메이션으로 구성됩 히트 맵 위에 나타나는 해당 바 줄거리입니다. A 년 colorbar 나타나는 다음을 열지도. 히트 맵 축 레이블 문자열에 저장된 채널이 있습니다.

여기에는 나의 기능을,어디서 뿌리가 내 주요 tkinter 창 축 레이블에 저장됩 channels, M_list 의 목록입니다 행렬과 bar_list 목록입니다 목록의 각 목록 bar_list 은 같은 길이 채널의 수와 bar_list 자체가 동일한 길이의 수 행렬이 있습니다.

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 행렬:

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-axis 라벨 발생하지 않고 깜박하지만. 같은 축에 속성을 수정한 후에 히트 맵 소개 깜박의 일부입니다.

2021-11-23 17:49:51

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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