PYTHON: как заставить атрибуты seaborn сбросить значение по умолчанию?

#python #pandas #matplotlib #seaborn

#python #pandas #matplotlib #seaborn

Вопрос:

Я не могу заставить seaborn вернуться к настройкам по умолчанию. Я помещу код, который, по моему мнению, вызвал эту проблему, но я бы не рекомендовал запускать его, если вы не знаете, как это исправить. Я считаю, что виновник находится в последнем фрагменте sns.set(font_scale = 4). прежде чем этот вопрос будет удален, потому что его уже задавали, я безуспешно пробовал другие опубликованные решения. Просто для краткости, сброс с помощью sns.set(), sns.set_style(), sns.restore_defaults() . Я также попытался сбросить настройки matplot до значений по умолчанию. Этот атрибут сохраняется во всех моих файлах, поэтому я не могу даже открыть новый файл, удалить строку кода, которая его вызвала, или запустить какие-либо прошлые программы, иначе он будет применяться и к этим графикам. Моя версия seaborn 0.10.1, я пытался ее обновить, но я не могу заставить ее пройти. Я использую среду разработки spyder от anaconda, в документации для версий после 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)
  

Комментарии:

1. Сначала перейдите к приглашению Anaconda и запустите conda update --all . Нет причин, по которым seaborn не может обновляться. seaborn для возврата к настройкам по умолчанию если вы не изменили файл, никакие настройки не сохраняются постоянно. import seaborn as sns загружает seaborn с настройками по умолчанию.

2. В документации упоминается следующее: (Обратите внимание, что в версиях seaborn до версии 0.8 set_theme() вызывался при импорте. В более поздних версиях это должно быть явно вызвано). разве это не то, что устанавливает настройки seaborn по умолчанию?

3. Только если вы хотите что-то другое, кроме настроек по умолчанию.

4. похоже, это исправлено! Спасибо