You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 KiB

Visualiseren van Verhoudingen

 Sketchnote door (@sketchthedocs)
Visualiseren van Verhoudingen - Sketchnote door @nitya

In deze les gebruik je een dataset met een focus op de natuur om verhoudingen te visualiseren, zoals hoeveel verschillende soorten paddenstoelen voorkomen in een gegeven dataset over champignons. Laten we deze fascinerende schimmels verkennen met een dataset afkomstig van Audubon, waarin details staan over 23 soorten plaatjeszwammen in de Agaricus- en Lepiota-families. Je gaat experimenteren met smakelijke visualisaties zoals:

  • Taartdiagrammen 🥧
  • Donutdiagrammen 🍩
  • Wafeldiagrammen 🧇

💡 Een zeer interessant project genaamd Charticulator van Microsoft Research biedt een gratis drag-and-drop interface voor datavisualisaties. In een van hun tutorials gebruiken ze ook deze champignon-dataset! Zo kun je de data verkennen en tegelijkertijd de bibliotheek leren kennen: Charticulator tutorial.

Pre-lecture quiz

Leer je champignons kennen 🍄

Champignons zijn erg interessant. Laten we een dataset importeren om ze te bestuderen:

mushrooms = read.csv('../../data/mushrooms.csv')
head(mushrooms)

Een tabel wordt weergegeven met geweldige data voor analyse:

klasse hoedvorm hoedoppervlak hoedkleur kneuzingen geur plaatjesbevestiging plaatjesafstand plaatjesgrootte plaatjeskleur steelvorm steelbasis steeloppervlak-boven-ring steeloppervlak-onder-ring steelkleur-boven-ring steelkleur-onder-ring sluier-type sluierkleur ring-aantal ring-type sporenkleur populatie habitat
Giftig Bolvormig Glad Bruin Kneuzingen Scherp Vrij Dicht Smal Zwart Breder Gelijk Glad Glad Wit Wit Gedeeltelijk Wit Eén Hangend Zwart Verspreid Stedelijk
Eetbaar Bolvormig Glad Geel Kneuzingen Amandel Vrij Dicht Breed Zwart Breder Knotsvormig Glad Glad Wit Wit Gedeeltelijk Wit Eén Hangend Bruin Talrijk Grasland
Eetbaar Klokvormig Glad Wit Kneuzingen Anijs Vrij Dicht Breed Bruin Breder Knotsvormig Glad Glad Wit Wit Gedeeltelijk Wit Eén Hangend Bruin Talrijk Weiden
Giftig Bolvormig Schilferig Wit Kneuzingen Scherp Vrij Dicht Smal Bruin Breder Gelijk Glad Glad Wit Wit Gedeeltelijk Wit Eén Hangend Zwart Verspreid Stedelijk
Eetbaar Bolvormig Glad Groen Geen kneuzingen Geen Vrij Dicht Breed Zwart Taps Gelijk Glad Glad Wit Wit Gedeeltelijk Wit Eén Vergankelijk Bruin Overvloedig Grasland
Eetbaar Bolvormig Schilferig Geel Kneuzingen Amandel Vrij Dicht Breed Bruin Breder Knotsvormig Glad Glad Wit Wit Gedeeltelijk Wit Eén Hangend Zwart Talrijk Grasland

Je merkt meteen dat alle data tekstueel is. Je zult deze data moeten converteren om het te kunnen gebruiken in een diagram. De meeste data is feitelijk weergegeven als een object:

names(mushrooms)

De output is:

[1] "class"                    "cap.shape"               
 [3] "cap.surface"              "cap.color"               
 [5] "bruises"                  "odor"                    
 [7] "gill.attachment"          "gill.spacing"            
 [9] "gill.size"                "gill.color"              
[11] "stalk.shape"              "stalk.root"              
[13] "stalk.surface.above.ring" "stalk.surface.below.ring"
[15] "stalk.color.above.ring"   "stalk.color.below.ring"  
[17] "veil.type"                "veil.color"              
[19] "ring.number"              "ring.type"               
[21] "spore.print.color"        "population"              
[23] "habitat"            

Neem deze data en converteer de 'klasse'-kolom naar een categorie:

library(dplyr)
grouped=mushrooms %>%
  group_by(class) %>%
  summarise(count=n())

Nu, als je de champignondata print, kun je zien dat het is gegroepeerd in categorieën volgens de giftige/eetbare klasse:

View(grouped)
klasse aantal
Eetbaar 4208
Giftig 3916

Als je de volgorde in deze tabel aanhoudt om je klassecategorie-labels te maken, kun je een taartdiagram bouwen.

Taart!

pie(grouped$count,grouped$class, main="Edible?")

Voila, een taartdiagram dat de verhoudingen van deze data toont volgens deze twee klassen van champignons. Het is erg belangrijk om de volgorde van de labels correct te krijgen, vooral hier, dus zorg ervoor dat je de volgorde controleert waarmee de labelarray is gebouwd!

taartdiagram

Donuts!

Een visueel interessanter taartdiagram is een donutdiagram, wat een taartdiagram is met een gat in het midden. Laten we onze data bekijken met deze methode.

Bekijk de verschillende habitats waar champignons groeien:

library(dplyr)
habitat=mushrooms %>%
  group_by(habitat) %>%
  summarise(count=n())
View(habitat)

De output is:

habitat aantal
Grasland 2148
Bladeren 832
Weiden 292
Paden 1144
Stedelijk 368
Afval 192
Hout 3148

Hier groepeer je je data op habitat. Er zijn 7 vermeld, dus gebruik die als labels voor je donutdiagram:

library(ggplot2)
library(webr)
PieDonut(habitat, aes(habitat, count=count))

donutdiagram

Deze code gebruikt de twee bibliotheken - ggplot2 en webr. Met de PieDonut-functie van de webr-bibliotheek kun je eenvoudig een donutdiagram maken!

Donutdiagrammen in R kunnen ook alleen met de ggplot2-bibliotheek worden gemaakt. Je kunt er meer over leren hier en het zelf proberen.

Nu je weet hoe je je data kunt groeperen en weergeven als een taart- of donutdiagram, kun je andere soorten diagrammen verkennen. Probeer een wafeldiagram, wat gewoon een andere manier is om hoeveelheden te verkennen.

Wafels!

Een 'wafel'-type diagram is een andere manier om hoeveelheden te visualiseren als een 2D-array van vierkanten. Probeer de verschillende hoeveelheden champignonhoedkleuren in deze dataset te visualiseren. Hiervoor moet je een hulpbibliotheek genaamd waffle installeren en gebruiken om je visualisatie te genereren:

install.packages("waffle", repos = "https://cinc.rud.is")

Selecteer een segment van je data om te groeperen:

library(dplyr)
cap_color=mushrooms %>%
  group_by(cap.color) %>%
  summarise(count=n())
View(cap_color)

Maak een wafeldiagram door labels te maken en vervolgens je data te groeperen:

library(waffle)
names(cap_color$count) = paste0(cap_color$cap.color)
waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", 
                                                                                     "pink", "purple", "red", "grey", 
                                                                                     "yellow","white"))

Met een wafeldiagram kun je duidelijk de verhoudingen van hoedkleuren in deze champignon-dataset zien. Interessant genoeg zijn er veel champignons met groene hoeden!

wafeldiagram

In deze les heb je drie manieren geleerd om verhoudingen te visualiseren. Eerst moet je je data groeperen in categorieën en vervolgens beslissen wat de beste manier is om de data weer te geven - taart, donut of wafel. Allemaal zijn ze smakelijk en geven de gebruiker een direct overzicht van een dataset.

🚀 Uitdaging

Probeer deze smakelijke diagrammen opnieuw te maken in Charticulator.

Post-lecture quiz

Review & Zelfstudie

Soms is het niet duidelijk wanneer je een taart-, donut- of wafeldiagram moet gebruiken. Hier zijn enkele artikelen om hierover te lezen:

https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart

https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce

https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm

https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402

Doe wat onderzoek om meer informatie te vinden over deze lastige beslissing.

Opdracht

Probeer het in Excel


Disclaimer:
Dit document is vertaald met behulp van de AI-vertalingsservice Co-op Translator. Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.