Övning – Visualisera data med återgivningsoperatorn
Vi har använt en meteorologisk datamängd för att aggregera och jämföra antalet vissa typer av stormhändelser i olika amerikanska delstater för år 2007. Här visualiserar du dessa resultat med hjälp av tidsbindade grafer.
Använda operatorn render
Kom ihåg att du har använt operatorn summarize
för att gruppera händelser efter ett gemensamt fält, till exempel Tillstånd. I föregående lektion använde du olika versioner av operatorn count
för att jämföra antalet och typerna av händelser efter tillstånd. Att visualisera dessa resultat kan vara ett användbart hjälpmedel för att jämföra aktivitet mellan olika tillstånd.
Om du vill visualisera resultat använder du operatorn render
. Den här operatorn kommer i slutet av en fråga. I operatorn render
anger du vilken typ av visualisering som ska användas, till exempel columnchart
, barchart
, piechart
, scatterchart
, pivotchart
och andra. Du kan också definiera olika egenskaper för visualiseringen, till exempel x-axeln eller y-axeln.
I det här exemplet visualiserar du den tidigare frågan med hjälp av ett stapeldiagram.
Kör följande fråga.
StormEvents | summarize count(), EventsWithDamageToCrops = countif(DamageCrops > 0), dcount(EventType) by State | sort by count_ | render barchart
Du bör få resultat som ser ut som följande bild:
Lägg märke till förklaringen till höger om stapeldiagrammet. Varje värde i förklaringen representerar en annan kolumn med data som har sammanfattats av Tillstånd i frågan. Prova att välja ett av värdena, till exempel count_, för att växla visning av dessa data i stapeldiagrammet. Genom att växla bort count_ tar du bort det totala antalet och har kvar antalet händelser som orsakat skador och ett tydligt antal händelser. Du bör få ett diagram som ser ut som följande bild:
Ta en titt på det resulterande stapeldiagrammet. Vilka insikter kan du få av detta? Du kanske till exempel märker att Texas hade de mest enskilda stormhändelserna, men Iowa hade den högsta förekomsten av skadliga stormhändelser.
Gruppera värden med hjälp av bin()
funktionen
Hittills har du använt aggregeringsfunktioner för att gruppera händelser efter delstat. Nu ska vi titta på fördelningen av stormar under året genom att gruppera data efter tid. Tidsvärdena som vi har i varje post är starttid och sluttid. Vi grupperar evenemangets starttider efter vecka, så att vi kan se hur många stormar som inträffat varje vecka under året 2007.
Du använder bin()
funktionen som grupperar värden i angivna intervall. Du kan till exempel ha data från varje dag på året och du vill gruppera dessa datum efter vecka. Eller så vill du gruppera befolkningsdata efter åldersintervall. Syntaxen för den här operatorn är:
bin(
value,
roundTo)
Bin-värdet kan vara ett tal, datum eller tidsintervall. Du aggregerar antalet med hjälp bin()
av funktionen för att ge dig ett antal händelser per vecka. Värdet du vill gruppera är StartTime för stormhändelsen, med storleken roundTo bin på 7days eller 7d för kort. Rendera slutligen data som ett kolumndiagram för att skapa ett histogram.
Kör följande fråga:
StormEvents | summarize count() by bin(StartTime, 7d) | render columnchart
Du bör få resultat som ser ut som följande bild:
Ta en titt på det resulterande histogrammet. Hovra över en av staplarna för att se starttiden för lagerplatsen (x-värde) och antalet händelser (y-värde).
Använda operatorn sum
I föregående fråga tittade du på antalet stormhändelser över tid. Nu ska vi ta en titt på skadorna som orsakats av dessa stormar. För detta använder sum
du aggregeringsfunktionen eftersom du vill se den totala mängden skador som orsakas under varje tidsintervall. Datauppsättningen som du arbetar med har två kolumner relaterade till skador: DamageProperty och DamageCrops.
I följande fråga skapar du först en beräknad kolumn som lägger till dessa två skadekällor tillsammans. Sedan skapar du en aggregering av den totala skadan per vecka. Slutligen renderar du ett stapeldiagram som representerar veckoskadorna som orsakas av alla stormar.
Kör följande fråga:
StormEvents | extend damage = DamageProperty + DamageCrops | summarize sum(damage) by bin(StartTime, 7d) | render columnchart
Du bör få resultat som ser ut som följande bild:
I föregående fråga visas skador som en tidsfunktion. Ett annat sätt att jämföra skadan är efter händelsetyp. Kör följande fråga för att använda ett cirkeldiagram för att jämföra de skador som orsakas av olika händelsetyper.
StormEvents | extend damage = DamageProperty + DamageCrops | summarize sum(damage) by EventType | render piechart
Du bör få resultat som ser ut som följande bild:
Hovra över en av segmenten i cirkeldiagrammet. Du bör se det absoluta värdet (total skada som orsakas av den här händelsetypen) och motsvarande procentandel av den totala skadan.