Skip to content

Instantly share code, notes, and snippets.

@Torskelgen
Created August 22, 2018 19:35
Min første r-graf
# Sørge for at programpakkene jeg skal bruke er aktivert.
library(tidyverse)
# Importere statiskken, fillokaliseringen er kortet ned i denne demoen, men må skrives fullt ut.
data <- read.csv2("C:\\...\\oslo_idrett_klasse.csv")
# Disse tidyverse-folka er veldig glad i tibbles, så jeg gjør om dataframen til en tibble.
data2 <- as_tibble(data)
# Gir variablene litt greiere navn.
data3 <- transmute(data2,
Bydel = Bydel,
høy = Høy.sosial.bakgrunn,
middels = Middels.sosial.bakgrunn,
lav = Lav.sosial.bakgrunn)
# Tidyverse og ggplot2 er veldig glade i smale datasett og ikke vide.
data4 <-
gather(data3, "lav", "middels","høy", key = "Bakgrunn", value = "Andel")
# Akkurat dette gjør jeg som en forberedelse for at bakgrunnsklassene skal vises i en logisk rekkefølge.
data4 <-
mutate(data4,
order = case_when(Bakgrunn == "lav" ~ 1,
Bakgrunn == "middels" ~ 2,
Bakgrunn == "høy" ~ 3))
# Jeg kommer til å ha tallene for hver bydel i separate vinduer (facets), så dette gjør jeg for fikse rekkefølgen der.
data4 <-
mutate(data4,
Bakgrunn = reorder(Bakgrunn, order),
Bydel = reorder(Bydel, Andel, min))
#For å lage forkortelser i grafen
bydel_names <- c(
"Stovner" = "Stovn.",
"Gamle Oslo" = "Gaml.",
"Alna" = "Alna",
"Grunerløkka" = "Grüne.",
"Søndre Nordstrand" = "S.Nor.",
"Grorud" = "Groru.",
"Oslo" = "Oslo",
"Frogner" = "Frogn.",
"Østensjø" = "Østen.",
"Sagene" = "Sagen.",
"Bjerke" = "Bjerke",
"St. Hanshaugen" = "St.Ha.",
"Ullern" = "Ullern",
"Nordstrand" = "Nords.",
"Vestre Aker" = "V.Aker",
"Nordre Aker" = "N.Aker"
)
# Endelig lager jeg selve grafen.
graf <- ggplot(data4, mapping = aes()) +
geom_col(mapping = aes(x = Bakgrunn, y = Andel), width = .05, colour = "grey") +
geom_hline(yintercept = 36.9, linetype = "dashed",colour = "red") +
geom_hline(yintercept = 54.5, linetype = "dashed", colour = "green4") +
geom_hline(yintercept = 68.3, linetype = "dashed", colour = "blue") +
geom_point(mapping = aes(x = Bakgrunn, y = Andel, colour = Bakgrunn)) +
geom_text(
mapping = aes(x = Bakgrunn, y = Andel, label = Andel), nudge_y = 3, size = 2.5) +
facet_wrap(~Bydel, nrow = 1, labeller = as_labeller(bydel_names)) +
labs(
y = "% ungdom som deltar i organisert idrett",
x = "Sosial bakgrunn",
title = "Ungdomsidrett og sosial bakgrunn",
caption = "Data fra rapporten 'Ung i Oslo 2015'"
) +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
legend.position = "bottom",
legend.title = element_blank(),
legend.key = element_rect(colour = "white"))
# Og nå vises grafen
graf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment