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 hexsticker ggplot2

  • ggplot2 là gói đồ họa mạnh cho R
  • "GG" trong ggplot là "ngữ pháp đồ họa"
  • ggplot2 xây đồ thị theo lớp (layering)
  • Thêm một hay nhiều đối tượng hình học vào lớp nền
R dành cho người dùng SAS

Lớp - 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 aessexdiameter

  • 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

Lớp - thêm geom boxplot

# Add boxplot geometric object or geom
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • Toán tử + thêm lớp
  • Thêm boxplot geom_boxplot()

  • Kết quả là 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

Lớp - thêm theme

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

Boxplot ggplot2 thêm 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 geom_boxplot
  • Tạo hình dạng như cây vĩ cầm
  • Phản ánh mật độ phân bố dữ liệu
  • Chỉ đổi nhỏ để có hình mới

Biểu đồ violin ggplot2

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

Histogram biến đơ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ỹ (aesthetic)
  • Thêm geom_histogram()
  • Đặt aes()shuckedWeight
  • Màu mặc định cần chỉnh

Biểu đồ tần suất ggplot2 toàn màu đen

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

Histogram thêm màu sắc

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • Đổ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 đề tốt hơn
  • Dùng xlab()ylab() cho trục
  • Dùng ggtitle() cho tiêu đề
  • Hình đã sẵn sàng xuất bản

Histogram ggplot2 có nhãn trục và tiêu đề

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

Tạo biểu đồ phân tán

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

Biểu đồ phân tán trọng lượng vỏ theo số vòng ggplot2

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

Phân tán thêm đường làm trơn

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

Biểu đồ phân tán với đường khớp làm trơn

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

Tạo ô 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 lớp nữa vào scatterplot
  • Tạo các ô theo từng giới tính abalone
  • Thêm lớp facet_wrap()
  • vars(sex) xác định biến phân ô

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 giới thiệu nhanh về đồ họa
    • Nền tảng kỹ năng đồ họa 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, 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ừ 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...