Trực quan hóa dữ liệu bằng gói ggplot2 trong R còn được gọi là ngữ pháp đồ họa (Grammar of Graphics), một gói trực quan hóa miễn phí, dễ dùng nên được sử dụng khá rộng rãi trong ngôn ngữ lập trình R.
Cấu trúc của ggplot2
Cấu trúc của ggplot2 được xây dựng thông qua các lớp sau đây:
- Data: phần tử chính là tập dữ liệu
- Aesthetics: dữ liệu được ánh xạ vào các thuộc tính Aesthetics như trục x, trục y, màu sắc, tô, kích thước, nhãn, hình dạng, độ rộng đường, loại đường
- Geometrics: cách thức dữ liệu được hiển thị: điểm, đường, biểu đồ, thanh, hộp
- Facets: hiển thị các tập con của dữ liệu
- Statistics: phân loại, làm mịn, mô tả, phép biến đổi
- Coordinates: không gian giữa dữ liệu và màn hình hiển thị sử dụng tọa độ Descartes, cực, giới hạn
- Themes: liên kết không dữ liệu
Trực quan hóa tập dữ liệu mtcars bằng ggplot2
Dataset
Khảo sát tập dữ liệu mtcars. mtcars bao gồm mức tiêu thụ nhiên liệu mpg và 10 thuộc tính về thiết kế và hiệu suất cho 32 ô tô. mtcars có sẵn trong gói dplyr của R.
- mpg: Miles/(US) gallon: số dặm trên một đơn vị gallon
- cyl: Number of cylinders: số lượng xi lanh
- disp: Displacement: dung tích xi lanh
- hp: Gross horsepower: công suất tối đa
- drat: Rear axle ratio: tỷ số trục quay
- wt: Weight: trọng lượng
- qsec: 1/4 mile time: thời gian đi trong 1/4 dặm
- vs: Engine (0 = V-shaped, 1 = straight): loại động cơ
- am: Transmission (0 = automatic, 1 = manual), hộp số (0 = số tự động, 1 = số sàn)
- gear: Number of forward gears: số lượng bánh răng tiến
- carb: Number of carburetors: số lượng bộ chế hòa khí
Data Layer
Data Layer là lớp dữ liệu để lưu trữ và trích xuất dữ liệu. Cú pháp: “ggplot() + labs()”
Aesthetics Layer
Aesthetics Layer là một lớp đồ thị trong ggplot2 được sử dụng để hiển thị các thuộc tính lên trên đồ thị thông qua cú pháp ggplot(data, aes(x= , y= ,col= )).
Geometric layer
Geometric layer là một lớp hình học trong gói ggplot2, dùng để kiểm soát các yếu tố cần thiết để hiển thị các thuộc tính của dữ liệu bằng “point”, “line”, “histogram”, “bar”, “boxplot”.
Ngoài ra Geometric layer còn có thêm yếu tố hình học: size, color, và shape trong Histogram plot.
Facet Layer
Facet Layer là một lớp trong gói ggplot2 được sử dụng để chia bộ dữ liệu thành các tập hợp con và cho phép các tập hợp con này được trực quan hóa trên cùng một biểu đồ.
Statistics layer
Statistics layer là lớp thống kê trong gói ggplot2 được sử dụng để phân loại, làm mịn, mô tả, phép biến đổi.
Coordinates layer
Coordinates layer là một lớp tọa độ trong gói ggplot2.Tọa độ dữ liệu được ánh xạ vào mặt phẳng ngữ pháp đồ họa.
Coord cartesian()
Sử dụng hàm Coord_cartesian() trong gói ggplot2 để phóng to mục tiêu.
Theme Layer
Theme Layer là một lớp trong gói ggplot2 được sử dụng để kiểm soát những điểm chi tiết hơn trong hiển thị dữ liệu; như kích thước phông chữ và thuộc tính màu nền.
Contour plot
Sử dụng hàm stat_density_2d trong gói ggplot2 để tạo biểu đồ mật độ đồng mức trong hai chiều.
Creating a panel of different plots
Sử dụng gói gridExtra trong ggplot2 và để hiển thị các histogram plot trên một bản.
Save and extract R plot
Để lưu và trích xuất biểu đồ trong R, chúng ta sử dụng hàm ggsave() trong gói ggplot2.
Kết luận
Từ cấu trúc gói ggplot2 và các hàm thành phần bên trong giúp trực quan hóa tập dữ liệu dưới các khía cạnh khác nhau, nhờ đó, hỗ trợ tốt cho quá trình phân tích, dự báo dữ liệu.
Nhất Luận
----------------------------------------
Tài liệu tham khảo:
[1] Explore mtcars. https://cran.r-project.org/web/packages/explore/vignettes/explore-mtcars.html
[2] Data visualization with R and ggplot2. https://www.geeksforgeeks.org/data-visualization-with-r-and-ggplot2/?ref=gcse
[3] The Analysis of Motor Trend Data on the relationship of automatic or manual transmission and MPG. https://rpubs.com/Aprilfly/carsdata
[4] Analysis of the Effect of the Type of Transmission on Vehicle MPG. https://rpubs.com/tadaly/mpg1
[5] MTCars-Data Analysis. https://rpubs.com/kaku/mtcarsDataAnalysis
[6] R Data Set. https://www.w3schools.com/r/r_stat_data_set.asp
[7] Introduction to ggplot2. https://ggplot2.tidyverse.org/articles/ggplot2.html#combining
[8] ggplot2: Elegant Graphics for Data Analysis (3e). https://ggplot2-book.org
[9] Lay out panels in a grid. https://ggplot2.tidyverse.org/reference/facet_grid.html
[10] How to increase spacing between faceted plots using ggplot2 in R?. https://www.geeksforgeeks.org/how-to-increase-spacing-between-faceted-plots-using-ggplot2-in-r/?ref=header_outind
[11] How to change color of regression line in R?. https://www.geeksforgeeks.org/how-to-change-color-of-regression-line-in-r/?ref=header_outind
[12] Complete themes. https://ggplot2.tidyverse.org/reference/ggtheme.html
[13] Contours of a 2D density estimate. https://ggplot2.tidyverse.org/reference/geom_density_2d.html