Tính linh hoạt của theme

Nhập môn trực quan hóa dữ liệu với ggplot2

Rick Scavetta

Founder, Scavetta Academy

Cách dùng theme

  1. Tự xây dựng (video trước)
Nhập môn trực quan hóa dữ liệu với ggplot2

Cách dùng theme

  1. Tự xây dựng (video trước)
  2. Đối tượng lớp theme
  3. Theme tích hợp sẵn
    • gói ggplot2 hoặc ggthemes
  4. Theme tích hợp từ gói khác
  5. Cập nhật/Đặt theme mặc định
Nhập môn trực quan hóa dữ liệu với ggplot2

Định nghĩa đối tượng theme

  • Hữu ích khi có nhiều biểu đồ
  • Giữ phong cách nhất quán
  • Áp dụng một theme cụ thể mọi nơi
Nhập môn trực quan hóa dữ liệu với ggplot2

Định nghĩa đối tượng theme

z <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + 
  geom_jitter(alpha = 0.6) +
  scale_x_continuous("Sepal Length (cm)", limits = c(4,8), expand = c(0,0)) +
  scale_y_continuous("Sepal Width (cm)", limits = c(1.5,5), expand = c(0,0)) +
  scale_color_brewer("Species", palette = "Dark2", labels = c("Setosa", "Versicolor", "Virginica"))

Nhập môn trực quan hóa dữ liệu với ggplot2

Định nghĩa đối tượng theme

z + theme(text = element_text(family = "serif", size = 14),
          rect = element_blank(),
          panel.grid = element_blank(),
          title = element_text(color = "#8b0000"),
          axis.line = element_line(color = "black"))

Nhập môn trực quan hóa dữ liệu với ggplot2

Định nghĩa đối tượng theme

theme_iris <- theme(text = element_text(family = "serif", size = 14),
          rect = element_blank(),
          panel.grid = element_blank(),
          title = element_text(color = "#8b0000"),
          axis.line = element_line(color = "black"))
Nhập môn trực quan hóa dữ liệu với ggplot2

Tái sử dụng đối tượng theme

z + theme_iris

Nhập môn trực quan hóa dữ liệu với ggplot2

Tái sử dụng đối tượng theme

m <- ggplot(iris, aes(x = Sepal.Width)) + 
    geom_histogram(binwidth = 0.1,
                   center = 0.05)
m                 

Nhập môn trực quan hóa dữ liệu với ggplot2

Tái sử dụng đối tượng theme

m +
  theme_iris

Nhập môn trực quan hóa dữ liệu với ggplot2

Tái sử dụng đối tượng theme

m + 
  theme_iris +
  theme(axis.line.x = element_blank())

Nhập môn trực quan hóa dữ liệu với ggplot2

Cách dùng theme

  1. Tự xây dựng (video trước)
  2. Đối tượng lớp theme
  3. Theme tích hợp sẵn
    • gói ggplot2 hoặc ggthemes
  4. Theme tích hợp từ gói khác
  5. Cập nhật/Đặt theme mặc định
Nhập môn trực quan hóa dữ liệu với ggplot2

Dùng theme tích hợp sẵn

Dùng các hàm theme_*() để gọi theme tích hợp.

z + 
  theme_classic()

Nhập môn trực quan hóa dữ liệu với ggplot2

Dùng theme tích hợp sẵn

Dùng các hàm theme_*() để gọi theme tích hợp.

z + 
  theme_classic() +
  theme(text = element_text(family = "serif"))

Nhập môn trực quan hóa dữ liệu với ggplot2

Cách dùng theme

  1. Tự xây dựng (video trước)
  2. Đối tượng lớp theme
  3. Theme tích hợp sẵn
    • gói ggplot2 hoặc ggthemes
  4. Theme tích hợp từ gói khác
  5. Cập nhật/Đặt theme mặc định
Nhập môn trực quan hóa dữ liệu với ggplot2

Gói ggthemes

Dùng gói ggthemes để có thêm hàm.

library(ggthemes)
z + 
  theme_tufte()

Nhập môn trực quan hóa dữ liệu với ggplot2

Cách dùng theme

  1. Tự xây dựng (video trước)
  2. Đối tượng lớp theme
  3. Theme tích hợp sẵn
    • gói ggplot2 hoặc ggthemes
  4. Theme tích hợp từ gói khác
  5. Cập nhật/Đặt theme mặc định
Nhập môn trực quan hóa dữ liệu với ggplot2

Cập nhật theme

original <- theme_update(text = element_text(family = "serif", size = 14),
                         rect = element_blank(),
                         panel.grid = element_blank(),
                         title = element_text(color = "#8b0000"),
                         axis.line = element_line(color = "black"))
Nhập môn trực quan hóa dữ liệu với ggplot2

Cập nhật theme

z

Nhập môn trực quan hóa dữ liệu với ggplot2

Đặt theme

theme_set(original)

# Alternatively
# theme_set(theme_grey())

Nhập môn trực quan hóa dữ liệu với ggplot2

Ayo berlatih!

Nhập môn trực quan hóa dữ liệu với ggplot2

Preparing Video For Download...