1
| data (cars) |
Mục tiêu chính của chúng ta ở đây là giới thiệu các hàm đồ thị và các đối số tương ứng của chúng. Biểu đồ xuất ra sẽ thú vị hơn nếu ta có nhiều dữ liệu và phức tạp.
Tập dữ liệu về cars có hai biến: speed và stopping distance được thu thập từ những năm 1920. Trước khi áp dụng các hàm biểu đồ, ta nên xem qua để cảm nhận tập dữ liệu hiện tại như thế nào.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| # quan sát 6 dòng dữ liệu đầu tiên head (cars) speed dist 1 4 2 2 4 10 3 7 4 4 7 22 5 8 16 6 9 10 # kiểm tra số chiều dữ liệu dim (cars) [1] 50 2 # liệt kê danh sách các thuộc tính names (cars) [1] "speed" "dist" # tổng hợp thông tin của bảng dữ liệu summary (cars) speed dist Min. : 4.0 Min. : 2.00 1st Qu.:12.0 1st Qu.: 26.00 Median :15.0 Median : 36.00 Mean :15.4 Mean : 42.98 3rd Qu.:19.0 3rd Qu.: 56.00 Max. :25.0 Max. :120.00 |
Bây giờ, chúng ta thử dùng hàm plot() để chấm điểm các dòng dữ liệu ra màn hình.
1
| plot (cars) |
Như thường lệ, R sẽ cố gắng tốt nhất có thể để phân tích đối số đưa vào hàm plot(). Đầu tiên, R sẽ để ý rằng data frame bạn đưa vào có hai cột, vì vậy R giả định rằng bạn muốn chấm điểm dữ liệu dựa trên quan hệ của hai cột thuộc tính này. Thứ hai, khi bạn không chỉ định cụ thể tên của các tọa độ, R sẽ sử dụng tên của các cột dữ liệu. Thứ ba, R sẽ tạo các tọa độ với các số trên trục tọa độ sao cho cân đối nhất. Và thứ tư, R sử dụng những giá trị mặc định trong hàm plot() để hiển thị biểu đồ như hình trên.
Tiếp theo chúng ta sẽ tùy biến các đối số đầu vào của hàm plot()
1
2
| # chỉ định trục tọa độ x, y và nhãn tương ứng cho hai trục tọa độ này plot (x = cars$speed, y = cars$dist, xlab = "Speed" , ylab = "Stopping Distance" ) |
Dưới đây, ta sẽ thêm các thông số về tiêu đề (title), phụ đề (sub-title), và hình dáng của biểu đồ.
1
2
3
4
5
6
| # main: tiêu đề của biểu đồ là My Plot # sub: phụ đề của biểu đồ là My Plot Subtitle # col: màu sắc của chấm điểm là màu đỏ # xlim: giới hạn hiển thị của trục x trong đoạn 10 đến 15 # pch: thay đổi hình dạng của chấm điểm thành tam giác plot (cars, main = "My Plot" , sub = "My Plot Subtitle" , col = 2, xlim = c (10, 15), pch = 2) |
Tiếp theo, chúng ta sẽ tìm hiểu về hàm boxplot() cho tập dữ liệu mtcars.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| data (mtcars) # quan sát 6 dòng dữ liệu đầu tiên head (mtcars) mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 # kiểm tra số chiều dữ liệu dim (mtcars) [1] 32 11 # liệt kê danh sách các thuộc tính names (mtcars) [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" [11] "carb" # tổng hợp thông tin của bảng dữ liệu summary (mtcars) mpg cyl disp hp Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5 Median :19.20 Median :6.000 Median :196.3 Median :123.0 Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0 Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0 drat wt qsec vs Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 Median :3.695 Median :3.325 Median :17.71 Median :0.0000 Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000 am gear carb Min. :0.0000 Min. :3.000 Min. :1.000 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000 Median :0.0000 Median :4.000 Median :2.000 Mean :0.4062 Mean :3.688 Mean :2.812 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000 Max. :1.0000 Max. :5.000 Max. :8.000 |
Thay vì chỉ định cụ thể các cột dữ liệu cho đối số đầu vào cho hàm boxplot(), ta làm tương tự như hàm plot(), chỉ cần truyền vào đối số là toàn bộ dữ liệu mtcars để R làm phần việc còn lại.
1
| boxplot (mtcars) |
boxplot(), như các hàm khác trong R, cũng có đối số “formula”, được biểu diễn bởi toán tử “~” để biểu thị mối quan hệ giữa các thuộc tính đầu vào. Để biểu diễn mối quan hệ giữa mpg (miles per gallon) và cyl (number of cylinders) ta có thể làm như sau mpg ~ cyl.
1
| boxplot (formula = mpg ~ cyl, data = mtcars) |
Ở biểu đồ trên thuộc tính mpg nằm ở trục hoành còn cyl đặt ở trục tung. Chú ý rằng, ta có thể hiệu chỉnh các thông số tương tự như hàm plot() như title hay color cho biểu đồ trên.
Khi quan sát trên một thuộc tính, histograms là một công cụ hữu dụng. Ta chỉ cần truyền vào hàm hist() thuộc tính muốn biểu thị:
1
| hist (mtcars$mpg) |
Qua bài viết này, ta đã biết cách làm việc với các biểu đồ cơ bản trong R. Điểm tốt nhất để tiếp tục từ bài viết này là nghiên cứu về package ggplot2. Trang web sau sẽ giúp ích cho bạn để tìm hiểu sâu hơn về package này. http://www.ling.upenn.edu/~joseff/rstudy/week4.html
Nguồn tham khảo: http://swirlstats.com/
Nguồn: https://ongxuanhong.wordpress.com/2015/07/13/lap-trinh-voi-r-bieu-do-co-ban/
Updated: dữ liệu (cars) là có sẵn khi cài R.
Updated: Có nguồn nói nên học ggplot2 trước. Link: http://varianceexplained.org/r/teach_ggplot2_to_beginners/