Tunjuk ajar ini ialah berasaskan penggunaan pekej ggplot2. Untuk membuat plot perbandingan dan memasukkan legend untuk perbandingan boleh dibuat seperti berikut.

library("data.table")

data <- fread("https://raw.githubusercontent.com/ybkamaleri/dataset/master/gdata.csv")

## lage tabellen alder group
ageWyoming <- data[location == "Wyoming", list(n = .N), by = .(agegp)]

dataW <- ageWyoming[, {
  N = sum(n)
  pros = round(n / N * 100, digits = 1)
  list(agegp = agegp,
       n = n,
       N = N,
       pros = pros)}]

dataW[, location := "Wyoming"]


ageRest <- data[location != "Wyoming", list(n = .N), by = .(agegp)]

dataR <- ageRest[, {
  N = sum(n)
  pros = round(n / N * 100, digits = 1)
  list(agegp = agegp,
       n = n,
       N = N,
       pros = pros)}]

dataR[, location := "National"]

data telah tersedia, bolehlah menyediakan plot yang diinginkan

library("ggplot2")
ggplot(NULL, aes(agegp, pros)) +
 geom_bar(data = dataW,
          # color = local di aes utk buat lagend
          mapping = aes(color = "local"), stat = "identity", fill = "lightblue") +

  # point utk national
  geom_point(data = dataR,
             # fill eller color kan brukes som dummy for å produsere legend
             mapping = aes(fill = "National"),

             # om color brukes som dummy til å lage legend så kan color ikke brukes her
             # men spesifiseringen av farge gjøes i scale_color_manual(value = "red")
             stat = "identity", size = 7, shape = 18, color = "red") + #shape 18 diamon og 19 rund

  # limits definere skale for y-aksen fra 0 til 50
  # breaks gir delingen i skalen dvs. hver 10-ene
  # expand gjør at det ikke er mellomrom mellom figuren og x-aksen
  scale_y_continuous(limits = c(0, 50), breaks = seq(0, 50, 10), expand = c(0, 0)) +

  # Title, subtitle, x- og y-label
  labs(title = "Title something", subtitle = "Subtitle for graph is here", x = "x-label", y = "y-label") +

  # snu figuren
  coord_flip() +

  # warna utk lagend local
  scale_color_manual(values = "lightblue") +

  # tema spesifikasjoner
  theme(
    legend.position = "top",
    legend.title = element_blank(),
    legend.text = element_text(size = 10),
    legend.key = element_rect(color = "white"),
    axis.text.y = element_text(color = "black", size = 9),
    plot.margin = unit(c(0,0.5,0,0), "cm"),
    panel.background = element_blank(),
    panel.border = element_blank(),
    panel.grid.major.y = element_blank(),
    panel.grid.major.x = element_line(colour = "grey", size = 0.4, linetype = 2),
    ## panel.grid.minor.x = element_line(colour = "grey", size = 0.2, linetype = 2),
    axis.ticks.y = element_blank(),
    axis.line.x = element_line(size = 0.5),
    axis.title.y = element_text(size = 9),
    axis.title.x = element_text(size = 9))

Hasilnya seperti ini:

plot_banding

comments powered by Disqus