boxplot() trong R: Cách thực hiện BoxSơ đồ trong RStudio [Ví dụ]
boxplot() trong R
boxplot() trong R giúp hình dung sự phân bố dữ liệu theo tứ phân vị và phát hiện sự hiện diện của các giá trị ngoại lai. Bạn có thể sử dụng đối tượng hình học geom_boxplot() từ thư viện ggplot2 để vẽ boxplot() trong R.
Chúng tôi sẽ sử dụng tập dữ liệu airquality để giới thiệu boxplot() trong R với ggplot. Tập dữ liệu này đo lường chất lượng không khí của New York từ tháng 1973 đến tháng 154 năm XNUMX. Tập dữ liệu chứa XNUMX quan sát. Chúng tôi sẽ sử dụng các biến sau:
- Ozone: Biến số
- Gió: Biến số
- Tháng: Tháng 5 đến tháng 9. Biến số
Tạo Box Âm mưu
Trước khi bạn bắt đầu tạo boxplot() đầu tiên trong R, bạn cần thao tác dữ liệu như sau:
- Bước 1: Nhập dữ liệu
- Bước 2: Bỏ các biến không cần thiết
- Bước 3: Chuyển đổi Tháng ở cấp hệ số
- Bước 4: Tạo một biến phân loại mới chia tháng với ba cấp độ: đầu, giữa và cuối.
- Bước 5: Xóa các quan sát bị thiếu
Tất cả các bước này được thực hiện với dplyr và toán tử đường ống %>%.
library(dplyr) library(ggplot2) # Step 1 data_air <- airquality % > % #Step 2 select(-c(Solar.R, Temp)) % > % #Step 3 mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), #Step 4 day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))
Một cách thực hành tốt là kiểm tra cấu trúc của dữ liệu bằng hàm lookup().
glimpse(data_air)
Đầu ra:
## Observations: 153 ## Variables: 5 ## $ Ozone <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ... ## $ Wind <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6... ## $ Month <ord> May, May, May, May, May, May, May, May, May, May, May,... ## $ Day <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,... ## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...
Có NA trong tập dữ liệu. Việc loại bỏ chúng là khôn ngoan.
# Step 5 data_air_nona <-data_air %>% na.omit()
Biểu đồ hộp cơ bản
Hãy vẽ biểu đồ hộp R boxplot() cơ bản với sự phân bố của ôzôn theo tháng.
# Store the graph box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone)) # Add the geometric object box plot box_plot + geom_boxplot()
Giải thích mã
- Lưu trữ biểu đồ để sử dụng tiếp
- box_plot: Bạn lưu trữ biểu đồ vào biến box_plot. Điều này hữu ích cho việc sử dụng sau này hoặc tránh các dòng mã quá phức tạp
- Thêm đối tượng hình học của R boxplot()
- Bạn truyền tập dữ liệu data_air_nona vào hộp lệnh ggplot.
- Bên trong đối số aes(), bạn thêm trục x và trục y.
- Dấu + có nghĩa là bạn muốn R tiếp tục đọc mã. Nó làm cho mã dễ đọc hơn bằng cách phá vỡ nó.
- Sử dụng geom_boxplot() để tạo biểu đồ hộp
Đầu ra:
Thay đổi cạnh của đồ thị
Bạn có thể lật cạnh của biểu đồ.
box_plot + geom_boxplot()+ coord_flip()
Giải thích mã
- box_plot: Bạn sử dụng biểu đồ đã lưu trữ. Nó tránh việc phải viết lại tất cả các mã mỗi khi bạn thêm thông tin mới vào biểu đồ.
- geom_boxplot(): Tạo boxplots() trong R
- coord_flip(): Lật cạnh của đồ thị
Đầu ra:
Thay đổi màu của ngoại lệ
Bạn có thể thay đổi màu sắc, hình dạng và kích thước của các ngoại lệ.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Giải thích mã
- outlier.colour=”red”: Kiểm soát màu của các ngoại lệ
- outlier.shape=2: Thay đổi hình dạng của ngoại lệ. 2 đề cập đến hình tam giác
- outlier.size=3: Thay đổi kích thước của hình tam giác. Kích thước tỷ lệ thuận với số lượng.
Đầu ra:
Thêm một thống kê tóm tắt
Bạn có thể thêm thống kê tóm tắt vào hộp R boxplot().
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Giải thích mã
- stat_summary() cho phép thêm tóm tắt vào hộp biểu đồ ngang R
- Đối số fun.y kiểm soát số liệu thống kê được trả về. Bạn sẽ sử dụng ý nghĩa
- Lưu ý: Các số liệu thống kê khác có sẵn như tối thiểu và tối đa. Nhiều số liệu thống kê có thể được hiển thị trong cùng một biểu đồ
- geom=“point”: Vẽ giá trị trung bình bằng một điểm
- size=3: Kích thước của điểm
- color="steelblue": Màu sắc của các điểm
Đầu ra:
Box Vẽ đồ thị bằng dấu chấm
Trong hộp biểu đồ ngang R tiếp theo, bạn thêm các lớp biểu đồ chấm. Mỗi chấm biểu thị một quan sát.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Giải thích mã
- geom_dotplot() cho phép thêm dấu chấm vào chiều rộng thùng
- binaxis='y': Thay đổi vị trí của các dấu chấm dọc theo trục y. Theo mặc định, trục x
- dotsize=1: Kích thước của dấu chấm
- stackdir='center': Cách xếp chồng các dấu chấm: Bốn giá trị:
- “lên” (mặc định),
- "xuống"
- "trung tâm"
- “trung tâm”
Đầu ra:
Kiểm soát tính thẩm mỹ của Box Âm mưu
Thay đổi màu của hộp
Bạn có thể thay đổi màu sắc của nhóm.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Giải thích mã
- Màu sắc của các nhóm được kiểm soát trong ánh xạ aes(). Bạn có thể sử dụng color=Month để thay đổi màu của hộp và biểu đồ râu theo tháng
Đầu ra:
Box âm mưu với nhiều nhóm
Cũng có thể thêm nhiều nhóm. Bạn có thể hình dung sự khác biệt về chất lượng không khí theo ngày đo.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Giải thích mã
- Ánh xạ aes() của đối tượng hình học điều khiển các nhóm hiển thị (biến này phải là một thừa số)
- aes(fill= day_cat) cho phép tạo ba hộp cho mỗi tháng trên trục x
Đầu ra:
Box Vẽ đồ thị với các chấm bị biến dạng
Một cách khác để hiển thị dấu chấm là sử dụng các điểm bị nhiễu. Đây là cách thuận tiện để trực quan hóa các điểm bằng biểu đồ hộp cho dữ liệu phân loại trong biến R.
Phương pháp này tránh được sự chồng chéo của dữ liệu rời rạc.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Giải thích mã
- geom_jitter() thêm một chút phân rã cho mỗi điểm.
- shape=15 thay đổi hình dạng của các điểm. 15 biểu diễn các hình vuông
- color=“steelblue”: Thay đổi màu của điểm
- location=position_jitter(width = 0.21): Cách đặt các điểm chồng nhau. location_jitter(width = 0.21) có nghĩa là bạn di chuyển các điểm đi 20 phần trăm so với trục x. Theo mặc định, 40 phần trăm.
Đầu ra:
Bạn có thể thấy sự khác biệt giữa biểu đồ đầu tiên với phương pháp jitter và biểu đồ thứ hai với phương pháp điểm.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Chữ khắc Box Âm mưu
Một tính năng thú vị của geom_boxplot() là hàm biểu đồ hộp có khía trong R. Biểu đồ khía thu hẹp hộp xung quanh trung vị. Mục đích chính của biểu đồ hộp có khía là so sánh ý nghĩa của trung vị giữa các nhóm. Có bằng chứng mạnh mẽ cho thấy hai nhóm có trung vị khác nhau khi các khía không chồng lên nhau. Một khía được tính như sau:
with là liên tứ phân vị và số lượng quan sát.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Giải thích mã
- geom_boxplot(notch=TRUE): Tạo một hộp biểu đồ ngang có khía R
Đầu ra:
Tổng kết
Chúng ta có thể tóm tắt các loại biểu đồ hộp ngang R khác nhau trong bảng dưới đây:
Mục tiêu | Mã |
---|---|
Biểu đồ hộp cơ bản |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
lật sang một bên |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Biểu đồ hộp có khía |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box vẽ đồ thị với các dấu chấm lộn xộn |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Cũng kiểm tra:- Hướng dẫn R cho người mới bắt đầu: Học ngôn ngữ lập trình R