Trực quan đồ họa trong R với ggplot2

R dành cho người dùng SAS

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

Gói ggplot2

logo hình lục giác ggplot2

  • ggplot2 là gói đồ họa mạnh mẽ cho R
  • "GG" trong ggplot là viết tắt của "grammar of graphics"
  • ggplot2 xây dựng đồ thị theo từng lớp (layer)
  • Thêm một hoặc nhiều đối tượng hình học vào lớp nền
R dành cho người dùng SAS

Layers - lớp nền

# Create plot for x=sex and y=diameter
ggplot(data = abalone, aes(sex, diameter))
  • Xác định lớp nền với ggplot()
  • Đặt data = abalone
  • Đặt aes là sex và diameter

  • Chưa có đối tượng đồ họa nào

  • Trục x đã sẵn sàng cho sex
  • Trục y đã sẵn sàng cho diameter
  • Lưới đã được bố trí

môi trường đồ họa ggplot2 chưa có boxplot

R dành cho người dùng SAS

Layers - thêm geom boxplot

# Add boxplot geometric object or geom
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • Toán tử cộng + thêm một layer
  • Thêm boxplot bằng geom_boxplot()

  • Kết quả là một loạt boxplot

  • Đường kính abalone theo giới tính
  • F cái, I non, M đực

đã thêm boxplot ggplot2

R dành cho người dùng SAS

Layers - thêm theme

# Add black white theme
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot() +
  theme_bw()
  • Thêm layer "theme" với theme_bw()
  • Loại bỏ nền xám
  • Vẽ khung đen quanh biểu đồ

boxplot ggplot2 với theme đen trắng

R dành cho người dùng SAS

Đổi geom boxplot sang geom violin

# Change to geom_violin()
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_violin() +
  theme_bw()
  • geom_violin thay cho geom_boxplot
  • Tạo hình giống cây vĩ cầm
  • Phản ánh phân bố mật độ dữ liệu
  • Chỉ cần đổi nhẹ là có hình mới

biểu đồ violin ggplot2

R dành cho người dùng SAS

Histogram một biến

# Make histogram of shuckedWeight
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram()
  • Tạo biểu đồ tần suất cho một biến
  • Một biến = một thẩm mỹ (aes)
  • Thêm geom_histogram()
  • Đặt aes() là shuckedWeight
  • Cần đổi màu mặc định

histogram ggplot2 màu đen

R dành cho người dùng SAS

Histogram thêm màu

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • Thay đổi tham số đồ họa
  • Đặt color cho viền cột
  • Đặt màu fill cho cột
  • Mỗi tùy chọn đặt trong ()
  • Histogram trông đẹp hơn nhiều

histogram ggplot2 với cột xanh và viền đen

R dành cho người dùng SAS

Histogram thêm tiêu đề và nhãn trục

# Add x, y axis labels and title
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue") +
  xlab("Shucked Weight") +
  ylab("Frequency Counts") +
  ggtitle("Shucked Weights Histogram")
  • Thêm nhãn trục và tiêu đề rõ hơn
  • Dùng xlab() và ylab() cho trục
  • Dùng ggtitle() cho tiêu đề
  • Hình này đã sẵn sàng để xuất bản!

histogram ggplot2 đã thêm nhãn trục và tiêu đề

R dành cho người dùng SAS

Tạo scatterplot

# Make scatterplot with geom_point()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • Scatterplot cần hai biến trong aes
  • geom_point() thêm các điểm
  • Biểu đồ phân tán khối lượng vỏ theo số vòng

biểu đồ phân tán shellWeight theo rings

R dành cho người dùng SAS

Scatterplot thêm đường làm mượt

# Add smoothed fit line
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth()
  • Thêm đường geom_smooth() vào scatterplot
  • Kèm vùng tin cậy có bóng mờ

biểu đồ phân tán với đường làm mượt

R dành cho người dùng SAS

Tạo panel theo biến khác

# Add panels using facet_wrap()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • Thêm một layer nữa cho scatterplot
  • Tạo các ô (panel) theo giới tính abalone
  • Thêm layer facet_wrap()
  • vars(sex) xác định biến để tạo panel

biểu đồ phân tán với 3 ô theo giới tính

R dành cho người dùng SAS

Phần còn lại của khóa học

  • Chương 1 kết thúc với phần giới thiệu ngắn về đồ họa
    • nền tảng kỹ năng đồ họa với ggplot2
    • trực quan hóa số đo abalone theo giới tính
  • Chương 2 dạy kỹ năng xử lý dữ liệu
    • làm sạch bộ dữ liệu abalone
  • Chương 3 dạy phương pháp khám phá dữ liệu
    • thống kê mô tả, tương quan và kiểm định so sánh
  • Chương 4 dạy mô hình hóa và trình bày kết quả
    • dự đoán tuổi abalone từ các số đo
    • khám phá mô hình theo giới tính
R dành cho người dùng SAS

Hãy vẽ vài biểu đồ cho abalone

R dành cho người dùng SAS

Preparing Video For Download...