Thu gọn giá trị các factor trong biểu đồ

Tác giả: Hoàng Đức Anh | 2018-04-15

Khi vẽ biểu đồ với R, trong một số trường hợp khi tên của factor quá dài, biểu đồ hiển thị ra sẽ không được thẩm mỹ. Xem ví dụ sau:

library(dplyr)
library(ggplot2)

data <- data.frame(x = c("Trung tam kinh doanh dien tu dien may va do gia dung", 
                         "Trung tam 2", 
                         "Trung tam kinh doanh my pham va dich vu"),
                   y = c(5,3,7))

# Vẽ biểu đồ thông thường, không xử lý với factor
data %>% 
  ggplot(aes(x, y)) + 
  geom_bar(stat = "identity", aes(fill = x)) +
  theme_bw() +
  theme(legend.position = "none") +
  ggtitle("Vi du 1")

Để khắc phục vấn đề trên, ta có thể sử dụng library stringr với hàm str_wrap để tự động co gọn lại giá trị của factor trên biểu đồ

library(stringr)
data %>% 
  ggplot(aes(x, y)) + 
  geom_bar(stat = "identity", aes(fill = x)) +
  theme_bw() +
  theme(legend.position = "none") +
  scale_x_discrete(labels = str_wrap(levels(data$x), width = 20)) +
  ggtitle("Vi du 2")

Như vậy, với hàm đơn giả từ R, ta đã có thể xử lý được vấn đề hiển thị giá trị của factor quá dài!

Chúc các bạn học và làm việc hiệu quả với Ranalytics.vn!

comments powered by Disqus