Nếu ta chỉ dùng các hàm vẽ với các đối số mặc định, kết quả thường chưa đạt yêu cầu về mặt khoa học cũng như thẩm mỹ: tên của các trục chưa đúng, các đường nét không như mong muốn, màu sắc không đẹp, ... Vì vậy ta cần điều chỉnh lại cũng như bổ sung thêm các chi tiết để nâng cao giá trị của biểu đồ. Điều này có thể được thực hiện một phần bằng cách sử dụng các đối số phù hợp.
Các đối số này được xác lập theo hai cách:
par
để xác lập. Khi ấy giá trị của đối số sẽ có giá trị cho tất cả các hàm vẽ sau đó (hiệu lực toàn cục).Nên lưu ý rằng ta có thể sử dụng các đối số này trong các hàm vẽ chính cũng như các hàm vẽ bổ sung, chức năng trong cả hai trường hợp hoàn toàn giống nhau.
Bạn có thể tham khảo thêm về danh sách cũng như chức năng của các đối số này tại trang web "Set or Query Graphical Parameters".
pch
Khi ta dùng hàm plot
, theo mặc định ta thấy các điểm được thể hiện dưới dạng các vòng tròn nhỏ không tô bên trong. Ta có thể thay đổi điều này bằng cách xác lập lại giá trị của đối số pch
.
Khi giá trị của pch
trong khoảng từ 0 đến 25, sự thể hiện của "điểm" được trình bày trên Hình 1. Qua đó, ta thấy giá trị mặc định của pch
là 1.
Hình 1 Hình của "điểm" khi pch
có giá trị từ 0 đến 25
Các giá trị từ 26 đến 31 không được sử dụng. Các giá trị từ 32 đến 127 tương ứng với mã ASCII (thí dụ 80 tương ứng với chữ P).
Ta cũng có thể sử dụng các ký tự trên bàn phím bằng cách đặt ký tự này giữa cặp dấu nháy đôi (""). Thí dụ pch = "H"
.
Kích thước của "điểm"
Ta có thể thay đổi kích thước của điểm bằng đối số cex
. Giá trị của đối số này cho ta biết kích thước tương đối của điểm so với kích thước chuẩn. Thí dụ khi cex = 2
, kích thước của điểm sẽ gấp đôi kích thước chuẩn.
Hình 2 cho ta thấy sự khác biệt của hai hàm vẽ của cùng một dữ liệu, một với các giá trị mặc định, một với các thông số pch
và cex
được xác lập lại.
> bngSay <- data.frame(NhietDo=seq(55,70,3),
ThoiGian=c(440,425,400,365,320,260), CamQuan=c("Kem","TB","Tot","Tot","TB","Kem")) > plot(ThoiGian ~ NhietDo, data=bngSay)
> plot(ThoiGian ~ NhietDo, data=bngSay, pch=15, cex=1.5)
Hình 2 Ảnh hưởng của nhiệt độ sấy đến thời gian sấy
col
Ta có thể làm các biểu đồ sinh động hơn với các màu sắc bằng cách sử dụng đối số col
. Ta có một số lưu ý sau về giá trị của đối số này:
Hình 3 Các màu tương ứng với giá trị của col
từ 1 đến 8
Ta cũng có thể dùng tên của màu được quy định sẵn trong R như col = "mediumpurple4"
. Để biết tên (tiếng Anh) của các màu này, ta thực hiện câu lệnh colors()
.
Trên cùng một biểu đồ, ta có thể sử dụng các màu khác nhau cùng một lúc. Thí dụ:
> plot(ThoiGian ~ NhietDo, data=bngSay, pch=15, cex=1.5, col=1:6)
Kết quả lệnh này được thể hiện trên Hình 4a.
Tạo màu theo điều kiện
Ta có thể tạo màu cho các điểm theo một hay một số điều kiện nào đấy. Thí dụ trên đồ thị quan hệ giữa nhiệt độ sấy và thời gian sấy, ta muốn tạo màu cho các điểm tùy thuộc vào giá trị cảm quan. Điều này được thực hiện bằng đoạn lệnh sau:
> MauCQ <- as.numeric(bngSay$CamQuan)
> plot(ThoiGian~NhietDo, data=bngSay, pch=15, cex=1.5, col=MauCQ)
Trong đoạn lệnh trên, trước hết ta tạo mới vectơ MauCQ chứa kết quả cảm quan dưới dạng số. Sau đó, gán các giá trị của vectơ này cho màu của các điểm trong biểu đồ. Kết quả thực hiện đoạn lệnh này được trình bày trên Hình 4b.
Hình 4 Ảnh hưởng của nhiệt độ sấy đến thời gian sấy
Ta cũng có thể áp dụng phương pháp này để vẽ các điểm có hình dạng khác nhau.
Lưu ý : Màu nền của biểu đồ được xác lập bằng đối số bg
. Tuy nhiên đối số này chỉ có thể xác lập trong hàm par
(hiệu lực toàn cục).
Để có thể thay đổi các đặc trưng của các đường (hay đoạn) thẳng hay cong, ta xác lập lại giá trị của các đối số có liên quan. Trong phần này, ta xem xét hai đối số thông dụng hơn cả.
+ lwd
: Đối số này được dùng để xác lập chiều dầy của đường tương đối so với chiều dầy chuẩn. Tùy thuộc thiết bị xuất mà chiều dầy chuẩn có thể là 1 pixel, 1 point hay 1/96 inch. Giá trị mặc định của nó là 1 và một số thiết bị xuất không chấp nhận giá trị nhỏ hơn 1.
+ lty
: Ta có thể xác lập loại đường bằng cách dùng đối số lty
theo các cách sau:
"blank"
: không vẽ gì cả,"solid"
: đường liên tục, (giá trị mặc định)"dashed"
: đường gián đoạn đều,"dotted"
: đường chấm chấtm,"dotdash"
: đường gián đoạn chấm gạch,"longdash"
: đường gián đoạn với gạch dài,"twodash"
: đường gián đoạn không đều,lty
từ 2 đến 6 được thể hiện trên HÌnh 5.lty = "5232"
là đường tạo bởi các nhóm gồm gạch liên tục 5 đơn vị, gián đoạn 2 đơn vị, gạch liên tục 3 đơn vị rồi gián đoạn 2 đơn vị."44"
, "13"
, "1343"
, "73"
và "2262"
.Hình 5 Một số loại đường
type
và các dạng thể hiện
Khi sử dụng hàm plot
với các đối số mặc định, biểu đồ thể hiện các điểm biểu diễn cho các cặp số (x, y). Ta có thể thay đổi dạng thể hiện này với đối số type
. Ý nghĩa của các giá trị của đối số này như sau:
"p"
: dạng điểm, đây cũng là giá trị mặc định của type
,"l"
: dạng đường (gãy), gồm các đoạn thẳng nối các điểm lại với nhau,"b"
: gồm cả điểm và các đoạn thẳng nối các điểm (nhưng không chạm vào các điểm),"c"
: chỉ gồm các đoạn thẳng vẽ khi type = "b"
,"o"
: gồm cả điểm và các đoạn thẳng và cả hai chồng lên nhau,"h"
: dạng giống như biểu đồ tần số với các thanh đứng,"s"
: dạng biểu đồ bậc thang thông thường,"S"
: dạng biểu đồ bậc thang đặc biệt,"n"
: không thể hiện gì.Các dạng biểu đồ này được thể hiện trên Hình 6.
Hình 6 Các dạng biểu đồ ứng với các giá trị của đối số type
Để tuân thủ các quy định về tên đối tượng của R, tên của các biến chịu khá nhiều ràng buộc như không chứa khoảng trắng, không chứa các ký tự đặc biệt. Tuy nhiên khi thực hiên lệnh vẽ với các đối số mặc định, các tên này sẽ được dùng cho các chi tiết của biểu đồ. Trong đa số trường hợp điều này là không phù hợp, đặc biệt là đối với tiếng Việt. Để biểu đồ có được các ghi chú, tên rõ ràng hơn, ta cần đặt lại hay thêm tên, ghi chú cho biểu đồ.
Đối với các trục toại độ, các đối số xlab
và ylab
giúp ta đặt tên các trục hoành và trục tung. Tên của biểu đồ được xác lập bởi đối số main
.
Để chọn lựa loại phông chữ, ta có thể sử dụng các đối số font
cho tất cả các chữ, font.lab
cho tên các trục, font.main
cho tên biểu đồ, font.axis
cho các chú giải trên các trục, font.sub
cho tiêu đề phụ. Giá trị này là 1 tương ứng với kiểu chữ thông thường, là 2 ứng với kiểu chữ đậm, là 3 ứng với kiểu chữ nghiêng, là 4 ứng với kiểu chữ nghiêng đậm, là 5 úng với các dấu hiệu (symbol) và kiểu chữ Hy Lạp.
Kích cỡ của chữ có thể được xác lập bằng nhóm các đối số cex
, cex.lab
, cex.main
, cex.axis
, cex.sub
.
Theo cách tương tự, màu của chữ có thể được xác lập bằng nhóm các đối số col
, col.lab
, col.main
, col.axis
, col.sub
.
Ta xem xét thí dụ minh họa trên câu lệnh và Hình 7 sau:
> plot(ThoiGian~NhietDo, data=bngSay, type="o", pch=16, col=4, lwd=2, cex=1.2,
xlab="Nhiệt độ (độ C)", ylab="Thời gian (phút)", font.lab=3,
main="Ảnh hưởng của nhiệt độ sấy đến thời gian sấy",
col.main=2, cex.main=1.2, font.main=4)
Hình 7 Biểu đồ với tên các trục và tên biểu đồ
Khi ta vẽ với các đối số mặc định, R sẽ đi tìm giá trị thấp nhất và cao nhất của các biến cần vẽ. Trên cơ sở đó tạo ra thang đo cho các biến. Nhờ vậy các điểm hay đường sẽ chiếm trọn diện tích của biểu đồ như chúng ta quan sát thấy trong các thí dụ trên. Trong một số trường hợp, ta muốn thay đổi thang đo cho phù hợp hơn với yêu cầu của xử lý hay trình bày dữ liệu.
Để thay đổi giá trị thấp nhất và cao nhất của thang đo trên hai trục, ta sử dụng các đối số xlim
và ylim
. Đó là các vectơ có hai thành phần, thí dụ xlim = c(40, 80)
. Hai thành phần này tương ứng với giá trị thấp nhất và cao nhất mà ta muốn xác lập trên các trục. Ta hãy so sánh Hình 7 và Hình 8 khi ta thêm hai đối số mới là xlim = c(50, 75)
và ylim = c(200, 500)
vào lệnh vẽ plot
.
Hình 8 Biểu đồ khi thêm các đối số xlim
và ylim
vào lệnh vẽ của Hình 6
Trong khoa học và kỹ thuật, đôi khi ta vẫn gặp các biểu đồ mà thang đo được phân độ theo thang đo logarit. R cũng cho phép ta làm điều này với đối số log
:
log = "x"
: trục hoành được chia theo thang đo log,log = "y"
: trục tung được chia theo thang đo log,log = "xy"
: cả hai trục đều được chia theo thang đo log.Ba câu lệnh và Hình 9 dưới đây giúp ta thể hiện kết quả của phân tích rây trên hai biểu đồ. Câu lệnh thứ nhất tạo ra bảng dữ liệu về tỷ lệ khối lượng bột (tính bằng phần trăm) tương ứng với phân đoạn trên rây có kích thước lỗ tương ứng (đơn vị là mm). Lệnh vẽ thứ nhất tạo ra biểu đồ có trục x chia theo thang đo thông thường (còn được gọi là thang đo tuyến tính) (Hình 9a). Lệnh vẽ thứ hai tạo ra biểu đồ có trục x chia theo thang đo logarit (Hình 9b).
> bngRay <- data.frame(PhanDoan=c(0.0625,0.125,0.25,0.5,1,2,4),
PhanTram=c(2,9,15,24,19,16,5)) > plot(PhanTram~PhanDoan, data=bngRay, type="o", lwd=3, col=2, pch=18, cex=1.5,
xlab="Phân đoạn (mm)", ylab="Tỷ lệ (%)", font.lab=4) > plot(PhanTram~PhanDoan, data=bngRay, type="o", lwd=3, col=2, pch=18, cex=1.5,
xlab="Phân đoạn (mm)", ylab="Tỷ lệ (%)", font.lab=4, log="x")
Hình 9 Tỷ lệ của các phân đoạn trong phân tích rây
par
và đối số toàn cục
Như đã trình bày sơ lược ở các phần trên, đối số của hàm vẽ có thể được xác lập bên trong hàm và chỉ có hiệu lực trong hàm đó thôi (hiệu lực cục bộ). Chúng cũng có thể được xác lập bằng hàm par
; khi ấy chúng sẽ có hiệu lực cho tất cả các hàm vẽ sau đó (hiệu lực toàn cục).
Tuy nhiên có 22 đối số chỉ có thể xác lập bởi hàm par
. Danh sách các đối số này và chức năng của chúng có thể được tìm thấy tại trang web "Set or Query Graphical Parameters". Ở đây ta chỉ xét đến hai đối số khá thông dụng liên quan đến việc chừa lề cho biểu đồ.
Chừa lề cho biểu đồ với mai
và mar
Đây là hai đối số có rất nhiều điểm tương tự nhau như cấu trúc, chức năng. Điểm khác biệt chủ yếu là đơn vị dùng trong mai
là inch, còn trong mar
là chiều cao của dòng tiêu chuẩn (line). Chúng là các vectơ có 4 thành phần và có dạng c(duoi, trai, tren, phai)
với ý nghĩa của các thành phần này được trình bày trên Hình 10.
Hình 10 Ý nghĩa của các thành phần trong mai
và mar
Đối với mar
, giá trị mặc định là c(5.1, 4.1, 4.1. 2.1)
.
Đoạn lệnh sau và Hình 11 cho ta thấy sự khác nhau khi thực hiện hai dòng lệnh giống hệt nhau.
> bA <- data.frame(x=seq(55,70,3), y=c(440,425,400,365,320,260))
> plot(y~x, data=bA, type="o", lwd=2, col=2, pch=16, cex=1.5)
> par(mar = c(2,2,1,1))
> plot(y~x, data=bA, type="o", lwd=2, col=2, pch=16, cex=1.5)
Hình 11 Biểu đồ với đối số mar
mặc định và mar = c(2,2,1,1)
Trang web này được cập nhật lần cuối ngày 25/11/2018
R
Các chuyên đề
Xử lý dữ liệu
Ma trận
R