Tác giả: Hoàng Đức Anh | 2018-10-01
Khi phân tích dữ liệu, một trong những định dang dữ liệu chúng ta thường xuyên phải sử dụng là định dạng text. Với loại dữ liệu này, một trong những cách để trực quan hóa hiệu quả là sử dụng wordcloud
. Trong bài viết này, Ranalytics
sẽ hướng dẫn các bạn tạo wordcloud nhanh chóng theo phong cách của tidyverse
với package ggwordcloud
- một package mới trong hệ sinh thái của R.
# Cài đặt
install.packages("ggwordcloud")
# Loading package
library(tidyverse)
library(ggwordcloud)
Ta sẽ tạo wordcloud từ tập dữ liệu có sẵn của ggwordcloud
là love_words_small
.
data("love_words_small")
love_words_small %>% head %>% knitr::kable()
lang | word | native_speakers | speakers |
---|---|---|---|
zh | 愛 | 1200.0 | 1200.0 |
en | Love | 400.0 | 800.0 |
es | Amor | 480.0 | 555.0 |
ar | حب | 245.0 | 515.0 |
hi | प्यार | 322.0 | 442.0 |
fr | Amour | 76.8 | 350.8 |
# Đặt theme minimal là default
theme_set(theme_minimal())
Để tạo wordcloud, ta có thể sử dụng geom_text_wordcloud
có sẵn. Tương tự như các geom_*
khác của R, geom_text_wordcloud
cũng hỗ trợ các aes
như size, color. Xem các ví dụ dưới đây.
# Ví dụ 1: wordcloud đơn giản
love_words_small %>%
ggplot(aes(label = word)) +
geom_text_wordcloud()
# Ví dụ 2: wordcloud có màu sắc và kích cỡ
love_words_small %>%
ggplot(aes(label = word, size = speakers)) +
geom_text_wordcloud() +
scale_size_area(max_size = 20)
# Ví dụ 3: Tạo màu sắc random cho chữ
love_words_small %>%
ggplot(aes(label = word,
size = speakers,
col = as.factor(sample.int(
8, nrow(.), replace = T
)))) +
geom_text_wordcloud() +
scale_size_area(max_size = 20)
Ngoài ra, ggwordcloud
còn cho phép tạo khung của wordcloud từ ảnh. Xem ví dụ sau.
set.seed(42)
love_words_small %>%
ggplot(aes(
label = word,
size = speakers,
color = as.factor(sample.int(7, nrow(.), replace = T))
)) +
geom_text_wordcloud(mask = png::readPNG(
system.file(
"extdata/hearth.png",
package = "ggwordcloud",
mustWork = TRUE
)
),
rm_outside = TRUE) +
scale_size_area(max_size = 20)
Như vậy, chúng ta đã vừa nắm được cách thức đơn giản để tạo wordcloud
với hệ sinh thái của ggplot2
. Chúc các bạn học tập và làm việc hiệu quả với Ranalytics.vn
!