Annorlunda visualiseringar
Tree maps
För att skapa en tree map behöver vi först ladda paketet portfolio samt hämta hem den förändrade treemap-funktionen via source().
require(portfolio)
source("https://raw.githubusercontent.com/canadice/visualization_literature/master/treemapbrewer.r")
Nu har vi skapat och laddat in en ny funktion i R som heter treemap_brewer() som har följande argument:
idstyr vilken variabel i datamaterialet som används som etikett i varje cell,groupstyr vilken variabel som anger vilka/hur många celler som ska skapas,areastyr vilken variabel som bestämmer storleken på cellen,colorstyr vilken variabel som bestämmer färgnyansen på cellen,textcolstyr färgen på texten i cellerna,linecolstyr färgen på kantlinjen mellan cellerna,palanger enRColorBrewerpalette med färger som används för färgläggning av cellerna,mainstyr diagramrubriken.
För att exemplifiera denna diagramtyp kommer iris-data användas igen. En beskrivning av detta material finns tidigare i kodmanualen. Vi vill nu skapa en tree map där vi vill se samband mellan Sepal.Length och Petal.Length för de tre olika arterna (Species) av blommor. För att kunna skapa detta diagram behöver vi ha en observation per art, så lite databearbetning behöver först göras i antingen Excel eller R.
Vi vill alltså aggregera materialet från det rådata (mikrodata) som anges för varje objekt till gruppvis data (makrodata) för varje art och detta gör vi genom att skapa ett medelvärde per art för de två undersökta variablerna. Vi skulle också kunna tänka oss att vi vill summera de olika arternas mått men i detta material är det nog lämpligare att titta på de genomsnittliga längderna som en egenskap av arten.
Nedanstående kod använder sig utav dplyr-paketets funktioner för databearbetning som kommer tas upp mycket mer i Programmering i R under vårterminen.
iris_agg <- iris %>% group_by(Species) %>% summarise(sepal_mean = mean(Sepal.Length),
petal_mean = mean(Petal.Length))
kable(iris_agg, format = "html", caption = tables("tab1")) %>%
kable_styling(position = "center", full_width = FALSE)
| Species | sepal_mean | petal_mean |
|---|---|---|
| setosa | 5.006 | 1.462 |
| versicolor | 5.936 | 4.260 |
| virginica | 6.588 | 5.552 |
Nu har vi datamaterialet enligt det format som behövs för att skapa en tree map, vi har två kontinuerliga variabler samt en kategorisk variabel. Notera att vi i denna funktion måste ange datamaterialet$variabelnamnet för att lägga till variablerna som vi vill använda i funktionen, till skillnad från tidigare använda ggplot2-funktioner.
treemap_brewer(id = iris_agg$Species,
group = iris_agg$Species,
area = iris_agg$sepal_mean,
color = iris_agg$petal_mean,
textcol = "black",
linecol = "black",
pal = "Oranges",
main = "Tree map över olika arter av blommor")

Tänk på att i figurbeskrivningen ange vilka variabler som styr storleken och färgen i diagrammet!
Parallellkoordinatdiagram
Denna sorts diagram ämnar att identifiera kluster av observationer i ett datamaterial, samt att kunna se korrelationen mellan intilliggande variabler. För att skapa diagrammet används ggparcoord() ur paketet GGally som vi tittat på tidigare.
Argumenten som vi är intresserade av är:
datasom anger vilket material som ska visualiseras,colsom anger vilka kolumnindex som ska visualiseras,scalesom alltid ska vara"uniminmax"för att standardisera y-axeln till samma skalor.
Till detta diagram kan vi använda andra ggplot2-funktionalitet för text och estetik.
ggparcoord(data = iris,
col = 1:4,
scale = "uniminmax") +
# Lägger till annan estetik likt tidigare diagram
theme_bw() +
theme(axis.title.y =
element_text(angle = 0,
hjust = 1,
vjust = 0.5),
plot.title =
element_text(hjust = 0.5),
plot.subtitle =
element_text(hjust = 0.5),
panel.grid.major.x =
element_line(color = "gray"),
panel.grid.minor.x =
element_line(color = "light gray"),
panel.grid.major.y =
element_line(color = "gray"),
panel.grid.minor.y =
element_line(color = "light gray")) +
labs(title = "",
x = "Variabel",
y = "Värde",
caption = "Källa: Anderson, E - The New S Language (1935)")

Till hjälp med tolkningen av detta diagram rekommenderas att läsa följande länk.