1. Ví dụ 1

Bảng số liệu

phamvi <- c("[65, 75)", "[75, 85)", "[85, 95)", "[95, 105)", "[105, 115)", "[115, 125)")
phamvi <- factor(phamvi, levels = phamvi)
songuoi <- c(1, 7, 24, 35, 25, 8)
df <- data.frame(phamvi, songuoi)
colnames(df) <- c("Phạm vi khoảng", "Số người")
df
##   Phạm vi khoảng Số người
## 1       [65, 75)        1
## 2       [75, 85)        7
## 3       [85, 95)       24
## 4      [95, 105)       35
## 5     [105, 115)       25
## 6     [115, 125)        8

Biểu đồ

library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
ggplot(data = df, mapping = aes(x = phamvi, y = songuoi)) + 
  geom_bar(stat = "identity", width = 0.6, col = "red", fill = "blue") +
  labs(x = "Glucoza máu (mg%)", y = "Tần số", subtitle = "Glucoza máu người bình thường") +
  theme(panel.grid.major = element_line(colour = "black"),
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

2. Ví dụ 2

Bảng số liệu

khoang <- c("[152, 155)", "[155, 158)", "[158, 161)", "[161, 164)", "[164, 167)", "[167, 170)", "[170, 173)", "[173, 176)")
khoang <- factor(khoang, levels = khoang)
songuoi2 <- c(263, 460, 540, 385, 204, 70, 20, 6)
df2 <- data.frame(khoang, songuoi2)
colnames(df2) <- c("Khoảng chiều cao", "Số người")
df2
##   Khoảng chiều cao Số người
## 1       [152, 155)      263
## 2       [155, 158)      460
## 3       [158, 161)      540
## 4       [161, 164)      385
## 5       [164, 167)      204
## 6       [167, 170)       70
## 7       [170, 173)       20
## 8       [173, 176)        6

Biểu đồ

ggplot(data = df2, mapping = aes(x = khoang, y = songuoi2)) + 
  geom_bar(stat = "identity", width = 0.6, col = "red", fill = "blue") +
  labs(x = "Chiều cao (cm)", y = "Tần số", subtitle = "Chiều cao thanh niên 17 tuổi") +
  theme(panel.grid.major = element_line(colour = "black"),
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

3. Ví dụ 3

Bảng số liệu

tinhtrang <- c("Thiếu cân", "Bình thường", "Thừa cân", "Béo phì")
tinhtrang <- factor(tinhtrang, levels = tinhtrang)
songuoi3 <- c(107, 857, 238, 15)
tile <- c(8.8, 70.4, 19.6, 1.2)
df3 <- data.frame(tinhtrang, songuoi3, tile)
colnames(df3) <- c("Tình trạng", "Số người", "Tỉ lệ (%)")
df3
##    Tình trạng Số người Tỉ lệ (%)
## 1   Thiếu cân      107       8.8
## 2 Bình thường      857      70.4
## 3    Thừa cân      238      19.6
## 4     Béo phì       15       1.2

Biểu đồ 1

nhan <- paste0(tile, "%")

ggplot(data = df3, mapping = aes(x = tinhtrang, y = tile / 100)) +
  geom_bar(stat = "identity", width = 0.6, col = "red", fill = "blue") +
  labs(x = "", y = "", subtitle = "Tỉ lệ (%)") +
  theme(panel.grid.major = element_line(colour = "black"),
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank()) +
  geom_text(aes(label = nhan, vjust = -0.5)) +
  scale_y_continuous(labels = scales::percent)

Biểu đồ 2

ggplot(df3, aes(x = "", y = tile, fill = tinhtrang)) +
  geom_bar(width = 1, stat = "identity") +
  labs(fill = "", x = "", y = "", title = "Tỉ lệ (%)") +
  coord_polar("y", start=0) +
  theme_void() +
  geom_text(aes(label = nhan, hjust = 1))

##Biểu đồ 3

ggplot(data = df3, mapping = aes(x = tinhtrang, y = tile / 100, group = 1)) + 
  geom_line(size =1.5, color = "cornflowerblue") + 
  geom_point(shape = 23, size = 3, fill = "blue") +
  theme(panel.grid.major = element_line(colour = "black"),
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank()) +
  geom_text(aes(label = nhan, hjust = -0.5, vjust = -0.5)) + 
  labs(x = "", y = "", subtitle = "Tỉ lệ (%)") +
  scale_y_continuous(labels = scales::percent)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.