R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

library(ggplot2)

# Dữ liệu bạn tự có trong mxh_data
mxh_data <- data.frame(
  Nền_tảng = factor(c("Facebook", "YouTube", "TikTok", "Instagram"), 
                    levels = c("Facebook", "YouTube", "TikTok", "Instagram")),
  Người_dùng = c(66, 63, 50, 12.5)
)

# Màu tương ứng với từng nền tảng
mau_nen_tang <- c(
  "Facebook" = "#1877F2",    # Xanh dương
  "YouTube" = "#FF0000",     # Đỏ
  "TikTok" = "#000000",      # Đen
  "Instagram" = "#FF69B4"    # Hồng
)

# Tổng người dùng Internet
total_internet_users <- 78.44

# Vẽ biểu đồ
ggplot(mxh_data, aes(x = reorder(Nền_tảng, -Người_dùng), y = Người_dùng, fill = Nền_tảng)) +
  geom_col(width = 0.6, show.legend = FALSE) +
  geom_text(aes(label = paste0(Người_dùng, " triệu")), vjust = -0.5, size = 4.5, color = "black") +
  geom_hline(yintercept = total_internet_users, linetype = "dashed", color = "red", linewidth = 1) +
  annotate("text", x = 2.5, y = total_internet_users + 2,
           label = "Tổng người dùng Internet (78,44 triệu)", 
           color = "red", fontface = "italic", size = 4) +
  scale_fill_manual(values = mau_nen_tang) +
  labs(
    title = "Số người dùng mạng xã hội tại Việt Nam (2024)",
    y = "Số người dùng (triệu)",
    x = NULL,
    caption = "Nguồn: DataReportal, tháng 1/2024"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.caption = element_text(hjust = 0, face = "italic", size = 10)
  )