[Python] Kalender Heatmap [Plotly] Memo

Überblick

Implementierung

gen_calmap


def gen_calmap(df,column_name_lst,aggr='sum',height= 260,width = 900):
    try:
        for column_name in column_name_lst:

            # heatmap_df_erste Generation
            heatmap_df_lst = _calender_heatmap_df(df,column_name,aggr)
            
            for heatmap_df in heatmap_df_lst:
                fig = px.imshow(heatmap_df[0],
                                x=heatmap_df[0].columns.unique(),
                                y=heatmap_df[0].index.unique(),
                                labels={'y':'Weekday','x':'Week','color':column_name},
                                width=width,
                                height=height,
                                aspect='auto',
                                )
                
                #Fügen Sie eine Lücke zwischen den Zellen ein
                fig.data[0]['ygap']=1
                fig.data[0]['xgap']=1
                
                fig.update_traces(
                    text = heatmap_df[1],
                    hovertemplate="Date: %{text} <br>Week: %{x} <br>Weekday: %{y} <br> "+ column_name +": %{z}"
                )
                fig.show()
    except:
        print('Es konnte keine Ruhekarte generiert werden.')

def _calender_heatmap_df(df,column_name,aggr='sum'):
    heatmap_df_lst =[]
    
    #DataFrame-Regeneration
    data = pd.DataFrame(eval("df[column_name].resample('D').{}()".format(aggr)))
    data.index = pd.to_datetime(data.index)
    
    ## add data
    data['week'] = pd.to_datetime(data.index).strftime('Week:%W')
    data['weekday'] = pd.to_datetime(data.index).weekday
    data['date'] = pd.to_datetime(data.index).strftime('%Y/%m/%d')

    weekday_dic = {0:'Mon',1:'Tue',2:'Wed',3:'Thr',4:'Fri',5:'Sat',6:'Sun'}
    
    #Datenerweiterung
    for year in data.index.year.unique():
        #Heatmap-Generierung
        heatmap_df = data.loc[data.index.year == year,:].pivot_table(index='weekday',columns='week',values=column_name)
        
        #Sortieren Sie die Tage in der Reihenfolge Montag → Sonntag
        heatmap_df = heatmap_df.rename(index=weekday_dic)
        
        #Datum generieren df
        date_df = data.loc[data.index.year == year,:].pivot(index='weekday',columns='week',values='date')
        date_df = date_df.rename(index=weekday_dic)
        
        #Fügen Sie df zur Liste hinzu
        heatmap_df_lst.append([heatmap_df,np.array(date_df)])
        
    return heatmap_df_lst

Lauf


gen_calmap(df=data,column_name_lst=['Elektrische Energie[kWh]','Gasmenge[m3]'],aggr='sum')

Ergebnis

plotly_calmap.gif

Zusammenfassung

Recommended Posts

[Python] Kalender Heatmap [Plotly] Memo
Was ist Python?
Was ist Python?
[Python] Was ist Pipeline ...
[Python] Was ist virtualenv?
[Python] Python und Sicherheit - is Was ist Python?
Python-Datentyp-Zusammenfassungsnotiz
[Python] * args ** Was ist kwrgs?
Python-Grundkurs (1 Was ist Python?)
[Python] Was ist eine Zip-Funktion?
[Python] Was ist eine with-Anweisung?
[Python] Was ist @? (Über Dekorateure)
[Python] Was ist der sortierte Schlüssel?
Python für Anweisung ~ Was ist iterierbar ~
Wofür ist der Python-Unterstrich (_)?
Python> Was ist ein erweitertes Slice?
[Python] Was ist Pandas Series und DataFrame?
[Python] Was wird durch Mehrfachvererbung geerbt?
Was ist NaN? NaN Zoya (Python) (394 Tage zu spät)
Was für eine Programmiersprache ist Python?
Python-Memo mit Perl-Format ist praktisch.
Was ist "Mahjong" in der Python-Bibliothek? ??
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
Was ist ein Hund? Python-Installationsvolumen
[Python] Schließen Sie das Vorverarbeitungs-Memo so ab, wie es ist
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
Was ist "funktionale Programmierung" und "objektorientiert"? Python Edition
Was ist im Docker Python-Image pfeifend?
Ich habe Python ausprobiert! ] Heute Abschluss von "Jeder Python! Was ist Python!"!
[Python] Konvertierungsnotiz zwischen Zeitdaten und numerischen Daten
Was vergleichst du mit Python und ==?
[Einführung in die Udemy Python3 + -Anwendung] 54. Was ist Docstrings?
Sag mir, was eine gleichwinklige Abbildung ist, Python!