首页 > 解决方案 > PYTHON:如何让 seaborn 属性重置为默认值?

问题描述

我一辈子都无法让 seaborn 恢复默认设置。我将放置我认为导致此问题的代码,但我建议不要运行它除非你知道如何解决它。我认为罪魁祸首是在这个问题被删除之前的最后一个块 sns.set(font_scale = 4) 因为它已经被问过了,我尝试了其他发布的解决方案但没有成功。仅举几例,使用 sns.set()、sns.set_style()、sns.restore_defaults() 进行重置。我也尝试过将 matplot 设置重置为默认值。这个属性在我所有的文件中都存在,所以我什至不能打开一个新文件,删除导致它的代码行,或者运行任何过去的程序,或者它也将应用于这些图表。我的 seaborn 版本是 0.10.1,我已经尝试更新它,但我无法让它通过。我正在使用 anaconda 的 spyder IDE 文档说对于 0.8 之后的版本,必须调用样式/主题才能重置,但是如果我尝试使用他们的解决方案 sns。set_theme() 我得到一个错误,说这个模块没有属性。我确信这种持久性被认为是一个特性,但我迫切需要它消失!

import requests
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import os
if __name__ == '__main__':
    
    #data prep
    data_path = './assets/'
    out_path = './output'
    #scraping javascript map data via xml
    endpoint = "https://covid.cdc.gov/covid-data-tracker/COVIDData/getAjaxData"
    data = requests.get(endpoint, params={"id": "US_MAP_DATA"}).json()
    #convert to df and export raw data as csv
    df = pd.DataFrame(data["US_MAP_DATA"])
    path = os.path.join(out_path,'Raw_CDC_Data.csv')
    df.to_csv(path)
    
    #Remove last data point (Total USA)
    df.drop(df.tail(1).index,inplace=True)
    #Create DF of just 50 states
    state_abbr =["AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DC", "DE", "FL", "GA", 
          "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
          "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
          "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
          "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"]
    
    
    states = df[df['abbr'].isin(state_abbr)]
    #Adding NYC to state of NY
        # FILL THIS IN LATER
    #Graphing
    plt.style.use('default')
    sns.set()
    #add new col survival rate and save
    states['survival_rate']=states['tot_cases']-states['tot_death']
    states.drop(df.columns[[0]],axis=1)
    states.reset_index(drop=True)
    path = os.path.join(out_path,'CDC_Data_By_State.csv')
    states.to_csv(path)
    #Stacked BarPlot
    fig, ax = plt.subplots()
    colors = ['#e5c5b5','#a8dda8']
    r=range(0,len(states.index))
    plt.bar(r,states['survival_rate'],color=colors[0])
    
    #ax = stacked['survival_rate','tot_death'].plot.bar(stacked=True, color=colors, ax=ax)
    
    fig, ax = plt.subplots()
    plt.figure(figsize=(20,35))
    sns.set(font_scale=4)
    ax = sns.barplot(x='tot_cases',y='abbr',data=states)
    ax.set(title='USA Covid-19 Cases by State', ylabel='State', xlabel='Confirmed Cases')
    path = os.path.join(out_path,'Total_Deaths_Bar.png')
    plt.savefig(path)

标签: pythonpandasmatplotlibseaborn

解决方案


推荐阅读