En komplett förklaring på vattenfallsdiagram

Källnod: 1878052

Beskrivning

Vattenfallsdiagrammet är ett 2-dimensionellt diagram som används speciellt för att förstå effekterna av inkrementella positiva och negativa förändringar över tid eller över flera steg eller en variabel. Vattenfallsdiagrammen är också kända som Floating Bricks Charts, Flying Bricks Charts.

När Gud tar en dusch vaknar vattenfall till liv runt om i världen. När jag duschar brukar mitt hår täppa till avloppet.
Anthony T Hincks

I den här artikeln kommer vi att se vikten av vattenfallsdiagram och hur man gör dem med de olika biblioteken som Matplotlib, Plotly.

Vattenfall diagram

Vattenfallsdiagrammet används ofta i finansiell analys för att förstå de positiva och negativa effekterna av flera faktorer över en viss tillgång. Diagrammet kan visa effekten baserat på båda tids baserad or kategoribaserad. Kategoribaserade diagram representerar vinst eller förlust över kostnader eller försäljning eller någon annan variabel som har positiva och negativa värden i följd. Tidsbaserade diagram representerar vinsten eller förlusten över tidsperioden.

Vattenfallsdiagrammet är mestadels horisontellt. De utgår från den horisontella axeln och är förbundna med en serie flytande kolumner som är relaterade till negativa eller positiva kommentarer. Ibland är staplarna förbundna med linjer i diagrammen.

Varför behöver vi det

Låt oss ta ett exempel för att förstå när och var man ska använda vattenfallsdiagram eftersom att göra vattenfallsdiagram inte är ett stort problem. Vi kommer att ta lite dummydata och Kaggle-datauppsättningen för att bygga ett vattenfallsdiagram.

Låt oss ta ett exempel

Om jag ger dig en tabell i pandor, inte en normal utan en snygg och ett vattenfallsdiagram, vilket är mer bekvämt att läsa? Berätta för mig?

Denna tabell representerar data för försäljningen för hela en vecka och jag har använt sjöborna biblioteket till skapa värmekartor med background_gradient

importera seaborn som sns # data a = ['mån','tis','wen','tors','fre','lör','sön'] b = [10,-30,-7.5,-25,95 ,7,45,-2] df0 = pd.DataFrame(b,a).reset_index().rename(columns={'index':'values',2:'week'}) # tabell cm = sns.light_palette ("grön", as_cmap=True) dfXNUMX.style.background_gradient(cmap=cm)
Vattenfall diagram data

Titta nu på tabellen och vattenfallsdiagrammet sida vid sida.

Waterfall Chart veckoförsäljning

Tabellen visar vikten av värden i ordning, men det är ganska svårt att läsa värdena. Men å andra sidan kan du enkelt se att den gula stapeln visar minskningen och den röda stapeln visar inkremernten.

Vattenfallsdiagram med Plotly

Datan som vi ska använda den är hämtad från Kaggle av Netflix-filmer och TV-program kan anteckningsboken hittas här..

Vi kommer att använda Plotly, ett diagrambibliotek med öppen källkod.

Importera biblioteket

importera plotly.graph_objects som go

dataset

df = pd.read_csv(r'D:/netflix_titles.csv')

Lägger till år och månad och konverterar till rätt datum- och tidsformat

df["date_added"] = pd.to_datetime(df['date_added']) df['year_added'] = df['date_added'].dt.year df['month_added'] = df['date_added'].dt .month df.head(3)

Låt oss förbereda data

d2 = df[df["typ"] == "Film"] col = "year_added" vc2 = d2[col].value_counts().reset_index().rename(columns = {col : "count", "index" : col}) vc2['procent'] = vc2['count'].apply(lambda x : 100*x/sum(vc2['count'])) vc2 = vc2.sort_values(col)

Nu ska vi göra ett vattenfallsdiagram med Plotly trace go.Waterfall(). Nu ska vi göra ett vattenfallsdiagram för Filmer genom åren.

fig2 = go.Figure(go.Waterfall( name = "Film", orientering = "v", x = ["2008", "2009", "2010", "2011", "2012", "2013", " 2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", textposition = "auto", text = ["1", "2", " 1", "13", "3", "6", "14", "48", "204", "743", "1121", "1366", "1228", "84"], y = [1, 2, -1, 13, -3, 6, 14, 48, 204, 743, 1121, 1366, -1228, -84], kontakt = {"line":{"color":"#b20710" }}, ökande = {"marker":{"color":"#b20710"}}, minskande = {"marker":{"color":"orange"}}, ))
Vattenfallsdiagram med Plotly

Låt oss gå igenom varje parameter en efter en:

  • x: Värdena som kommer att vara på x-axeln
  • y: Värdena som kommer att ligga på y-axeln
  • text: De värden som kommer att finnas på diagrammen
  • textposition: Vi kan sätta texten inuti staplarna i diagrammet eller ovanför staplarna i diagrammet

För att göra diagrammen eleganta kommer vi också att ge färgerna till staplarna på diagrammen och deras kopplingslinje. För ökande staplar har jag gett röd färg och för minskande staplar är det gul färg.

Parametrarna för diagrammen

  • kontakt: Ger färger till anslutningslinjen
  • ökande: Ge färger till de ökande staplarna
  • minskar: Ger färger till de minskande staplarna

Som vi ser diagrammet ser det ganska bra ut men låt oss göra det mer attraktivt.

fig2.update_xaxes(showgrid=False) fig2.update_yaxes(showgrid=False, visible=False) fig2.update_traces(hovertemplate=None) fig2.update_layout(title='Titta på film under året', height=350, margin=dict( t=80, b=20, l=50, r=50), hovermode="x unified", xaxis_title=' ', yaxis_title=" ", plot_bgcolor='#333', paper_bgcolor='#333', title_font= dict(size=25, color='#8a8d93', family="Lato, sans-serif"), font=dict(color='#8a8d93'))
tittar på filmer
Vattenfallsdiagram i Plotly

Nu ser det perfekt ut.

Låt oss titta på parametrarna nu.

  • Titel: Titel för diagrammet
  • marginal: Ställa in marginalen för diagrammet: topp, botten, vänster, höger
  • plot_bgcolor: Ställa in bakgrundsfärgen för tomten
  • paper_bgcolor: Ställa in pappersbakgrundsfärgen
  • font: Ställa in teckensnittsegenskaper
  • title_font: Ställa in egenskaper för titelteckensnitt
  • Jag har dölja y-axeln eftersom genom att använda update_yaxes(visible=False).

Den fullständiga koden

d2 = df[df["typ"] == "Film"] col = "year_added" vc2 = d2[col].value_counts().reset_index().rename(columns = {col : "count", "index" : col}) vc2['percent'] = vc2['count'].apply(lambda x : 100*x/sum(vc2['count'])) vc2 = vc2.sort_values(col) fig2 = go.Figure (go.Waterfall( name = "Film", orientering = "v", x = ["2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015 ", "2016", "2017", "2018", "2019", "2020", "2021", textposition = "auto", text = ["1", "2", "1", "13 ", "3", "6", "14", "48", "204", "743", "1121", "1366", "1228", "84", y = [1, 2, -1, 13, -3, 6, 14, 48, 204, 743, 1121, 1366, -1228, -84], anslutning = {"line":{"color":"#b20710"}}, ökande = {"marker":{"color":"#b20710"}}, minskande = {"marker":{"color":"orange"}}, )) fig2.update_xaxes(showgrid=False) fig2.update_yaxes(showgrid =False, visible=False) fig2.update_traces(hovertemplate=None) fig2.update_layout(title='Titta på film under året', height=350, margin=dict(t=80, b=20, l=50, r =50), hovermode="x unified", xaxis_title=' ', yaxis_title=" ", plot_bgcolor='#333', paper_bgcolor='#333', title_font=dict(size=25, color='#8a8d93', family="Lato, sans-serif"), font=dict(color='#8a8d93'))

 

Vattenfallsdiagram med Matplotlib

Importera vattenfallsdiagrambiblioteket med pip

!pip installera vattenfallsdiagram

Importera biblioteket

importera pandor som pd import waterfall_chart importera matplotlib.pyplot som plt %matplotlib inline

Låt oss rita ett vattenfallsdiagram för Varje veckas försäljningsdata.

a = ['mån','tis','wen','tors','fre','lör','sön'] b = [10,-30,-7.5,-25,95,-7,45, XNUMX] waterfall_chart.plot(a, b);
Vattenfallsdiagram i Matplotlib
Vattenfallsdiagram i Matplotlib 

Om vi ​​tittar noga på diagrammen är staplarna med positiva värden i grönt, negativa värden är i rött och det totala värdet är i blått som standard.

Lägger till några parametrar i diagrammet

waterfall_chart.plot(a, b, net_label='Total', rotation_value=360)

parametrar i diagrammet:

  • net_label: Vid sista bar kan vi ändra namnet på baren med net_label
  • rotationsvärde: Rotera och ställa in värdet på x-axeln
matplotlib

Slutnoteringar

Vi såg vikten av vattenfallsdiagrammet: när och hur man använder det med Plotly och Matploib. Jag hoppas att du gillade artikeln och om du har några frågor kan du kontakta mig på

LinkedIn | KaggleMedium | Analys Vidhya

Media som visas i denna artikel ägs inte av Analytics Vidhya och används efter författarens gottfinnande.

Källa: https://www.analyticsvidhya.com/blog/2021/10/a-complete-explainer-on-waterfall-chart/

Tidsstämpel:

Mer från Analys Vidhya