首页 > 解决方案 > 通过 Func 动画后重复 sns 热图的传说

问题描述

我下面的代码运行良好。唯一的问题是每'n'秒之后(因为我正在使用func Animation)。它重复热图图例,这是我不期望的。任何解决方案。

请参阅下面的图表,其中热图图例栏重复并且图形正在缩小。

图1

到目前为止我的代码:

from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome()
import csv
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib as mpl
from NumTOWord import numberToText, spellNumber
import numpy as np
from datetime import datetime
import matplotlib as mpl
import seaborn as sns
import matplotlib.ticker as ticker

### main Df name is OI_df

fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)

plt.style.use('seaborn-paper')  # switch to seaborn style  seaborn-paper, seaborn tick


def animate(i):

    startTime = datetime.now()
    url = 'url'
    driver.get(url)

    html = driver.page_source

    soup = BeautifulSoup(html, 'html.parser')

    table = soup.findAll('table', {'id': 'someid'})

    for trs in table:
        rows = trs.findAll('tr')
        xs = []
        ys = []
        datarowList = []  # M1 Start classic expample of making df from multiple list
        for row in rows[2:-1]:
            datarowList.append(Num_DatRows)
            OI_df = pd.DataFrame(datarowList, columns=headers)

            OI_df.to_csv('out.csv')

        x = OI_df['OI_ce'].values

        y = OI_df['LTP_ce'].values

        # ax1.plot(x,y) # Call
        # ax1.matshow(OI_df.corr())

        ax1.clear()
        corr = OI_df.corr()
        sns.heatmap(corr, xticklabels=corr.columns.values,
                    yticklabels=corr.columns.values, ax=ax1)


        # sns.pairplot(OI_df)
        # sns.pairplot(df, vars=[columns_names])

ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()

标签: pythonpython-3.xmatplotlib

解决方案


我遇到了类似的问题。我没有使用动画,而是重试了这样简单的事情,它终于对我有用:

for t in range(0,1700):
    current_score=overall_Score[t:t+10,:]
    plt.clf()
    sns.heatmap(current_score)
    plt.pause(0.1)

请给这个解决方案一个大拇指,如果它有帮助......竖起大拇指会对我有很大帮助......;)


推荐阅读