Ký tự vẽ, hay pch, là đối số tiêu chuẩn để đặt ký tự sẽ được vẽ trong một số hàm R.
Bạn có thể thêm phần giải thích vào biểu đồ dưới nhiều dạng khác nhau, bao gồm nhãn trục, tiêu đề, chú giải, hoặc văn bản ngay trên biểu đồ. Các hàm đồ họa cơ bản trong R thường tự tạo nhãn trục theo mặc định, tuy nhiên có thể ghi đè bằng đối số xlab() để cung cấp nhãn trục x của riêng bạn và ylab() để cung cấp nhãn trục y của riêng bạn.
Một số hàm đồ họa cơ bản cũng cung cấp tiêu đề mặc định, nhưng một lần nữa, bạn có thể ghi đè như dưới đây:
library(MASS)
par(mfrow = c(1,2))
plot(density(geyser$waiting))
plot(density(geyser$waiting), main ="Estimated density: \n Old Faithful waiting times")Được hỗ trợ bởi
Biểu đồ bên trái dùng tiêu đề mặc định do hàm density trả về, cho biết biểu đồ được tạo bởi hàm này với các tùy chọn mặc định và cũng đưa ra đặc tả R cho biến có mật độ chúng ta đang vẽ. Ở biểu đồ bên phải, tiêu đề mặc định này đã bị ghi đè bằng cách chỉ định đối số tùy chọn main. Lưu ý rằng bằng cách chèn ký tự xuống dòng, backslash n, chúng ta tạo tiêu đề hai dòng trong chuỗi ký tự này.
text() Function
Tương tự các hàm lines và points, text là một hàm đồ họa cấp thấp cho phép thêm văn bản giải thích vào biểu đồ hiện có. Để làm điều này, chúng ta phải chỉ định các giá trị x và y, tức tọa độ trên biểu đồ nơi văn bản sẽ xuất hiện, và labels, là một vector ký tự chỉ định văn bản cần thêm.
Mặc định, văn bản thêm vào biểu đồ sẽ được căn giữa tại các giá trị x chỉ định, nhưng có thể dùng đối số tùy chọn adj để điều chỉnh căn lề.
Lưu ý rằng đối số adj của hàm text() xác định vị trí ngang của văn bản, và có thể nhận mọi giá trị trong khoảng từ 0 (căn trái) đến 1 (căn phải). Thực tế, đối số này còn có thể nhận giá trị ngoài khoảng đó. Cụ thể, đặt giá trị âm khiến văn bản bắt đầu nằm bên phải vị trí x chỉ định. Tương tự, đặt adj lớn hơn 1 sẽ khiến văn bản kết thúc bên trái vị trí x.
library(MASS)
plot(UScereal$fibre)
text(5,28,"<-- Outliers [left-justified text at (5, 28)]", adj =0)
text(65,23,"[Right-justified text at (65, 23)]", adj =1, col ="red")
text(5,28,"[Centered text (default) at (31, 18)]", col ="blue")Được hỗ trợ bởi
Phông chữ, hướng và các đặc điểm văn bản khác
Dưới đây là một số cách có thể thay đổi diện mạo văn bản thêm vào thông qua các đối số tùy chọn của hàm text. Mặc định, văn bản được tạo theo phương ngang, nhưng có thể thay đổi bằng đối số srt, tham số hóa góc xoay so với trục hoành.
Tiếp theo, văn bản màu đỏ nghiêng lên trên do đặt srt là giá trị dương 30 độ, trong khi văn bản màu xanh lá nghiêng xuống dưới bằng cách đặt srt bằng -45.
Chúng ta cũng có thể chỉ định màu văn bản với đối số col, và văn bản màu đỏ cho thấy có thể thay đổi cỡ chữ bằng đối số cex. Khi đặt cex = 1.2, chúng ta đã tăng kích thước văn bản lên 20% so với bình thường.
Đặc điểm văn bản khác được điều chỉnh trong ví dụ này là phông chữ, thiết lập bằng đối số font. Giá trị mặc định là font = 1, chỉ văn bản thường, trong khi font = 2 là đậm, font = 3 là nghiêng, và font = 4 là vừa đậm vừa nghiêng.
library(MASS)
plot(Boston$rad)# "Inner city" with adjusted colour and rotation
text(350,24, adj =1,"Inner city? -->", srt =30, font =2, cex =1.2, col ="red")# "Suburbs" with adjusted colour and rotation
text(100,15,"Suburbs? -->", srt =-45, font =3, col ="green")
title("Text with varying orientations, fonts, sizes & colors")Được hỗ trợ bởi
Điều chỉnh vị trí, kích thước và phông chữ của văn bản
Trong ví dụ sau, bạn sẽ:
Tạo biểu đồ MPG.city so với Horsepower từ khung dữ liệu Cars93, với dữ liệu hiển thị bằng vòng tròn rỗng (mặc định pch).
Tạo biến index3 bằng hàm which() để xác định số hàng chứa tất cả xe 3 xi-lanh.
Dùng hàm points() để phủ các vòng tròn đặc, pch = 16, lên tất cả các điểm trong biểu đồ đại diện cho xe 3 xi-lanh.
Dùng hàm text() với biến Make như trước để thêm nhãn bên phải các xe 3 xi-lanh, nhưng lần này dùng adj = 0.2 để đẩy nhãn xa hơn về bên phải, dùng đối số cex để tăng kích thước nhãn thêm 20%, và dùng đối số font để đặt nhãn đậm nghiêng.
# Plot MPG.city vs. Horsepower as open circles
plot(Cars93$Horsepower, Cars93$MPG.city)# Create index3, pointing to 3-cylinder cars
index3 <- which(Cars93$Cylinders ==3)# Highlight 3-cylinder cars as solid circles
points(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
pch =16)# Add car names, offset from points, with larger bold text
text(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
Cars93$Make[index3],
adj =-0.2, cex =1.2, font =4)Được hỗ trợ bởi
Khi chạy đoạn mã trên, bạn sẽ thu được kết quả sau:
Ký tự vẽ, hay pch, là đối số tiêu chuẩn để đặt ký tự sẽ được vẽ trong một số hàm R.
Bạn có thể thêm phần giải thích vào biểu đồ dưới nhiều dạng khác nhau, bao gồm nhãn trục, tiêu đề, chú giải, hoặc văn bản ngay trên biểu đồ. Các hàm đồ họa cơ bản trong R thường tự tạo nhãn trục theo mặc định, tuy nhiên có thể ghi đè bằng đối số
xlab()để cung cấp nhãn trục x của riêng bạn vàylab()để cung cấp nhãn trục y của riêng bạn.Một số hàm đồ họa cơ bản cũng cung cấp tiêu đề mặc định, nhưng một lần nữa, bạn có thể ghi đè như dưới đây:
Biểu đồ bên trái dùng tiêu đề mặc định do hàm density trả về, cho biết biểu đồ được tạo bởi hàm này với các tùy chọn mặc định và cũng đưa ra đặc tả R cho biến có mật độ chúng ta đang vẽ. Ở biểu đồ bên phải, tiêu đề mặc định này đã bị ghi đè bằng cách chỉ định đối số tùy chọn main. Lưu ý rằng bằng cách chèn ký tự xuống dòng, backslash n, chúng ta tạo tiêu đề hai dòng trong chuỗi ký tự này.
text()FunctionTương tự các hàm lines và points, text là một hàm đồ họa cấp thấp cho phép thêm văn bản giải thích vào biểu đồ hiện có. Để làm điều này, chúng ta phải chỉ định các giá trị x và y, tức tọa độ trên biểu đồ nơi văn bản sẽ xuất hiện, và labels, là một vector ký tự chỉ định văn bản cần thêm.
Mặc định, văn bản thêm vào biểu đồ sẽ được căn giữa tại các giá trị x chỉ định, nhưng có thể dùng đối số tùy chọn
adjđể điều chỉnh căn lề.Lưu ý rằng đối số
adjcủa hàmtext()xác định vị trí ngang của văn bản, và có thể nhận mọi giá trị trong khoảng từ 0 (căn trái) đến 1 (căn phải). Thực tế, đối số này còn có thể nhận giá trị ngoài khoảng đó. Cụ thể, đặt giá trị âm khiến văn bản bắt đầu nằm bên phải vị tríxchỉ định. Tương tự, đặtadjlớn hơn 1 sẽ khiến văn bản kết thúc bên trái vị tríx.Phông chữ, hướng và các đặc điểm văn bản khác
Dưới đây là một số cách có thể thay đổi diện mạo văn bản thêm vào thông qua các đối số tùy chọn của hàm text. Mặc định, văn bản được tạo theo phương ngang, nhưng có thể thay đổi bằng đối số
srt, tham số hóa góc xoay so với trục hoành.Tiếp theo, văn bản màu đỏ nghiêng lên trên do đặt
srtlà giá trị dương 30 độ, trong khi văn bản màu xanh lá nghiêng xuống dưới bằng cách đặtsrtbằng -45.Chúng ta cũng có thể chỉ định màu văn bản với đối số
col, và văn bản màu đỏ cho thấy có thể thay đổi cỡ chữ bằng đối sốcex. Khi đặtcex = 1.2, chúng ta đã tăng kích thước văn bản lên 20% so với bình thường.Đặc điểm văn bản khác được điều chỉnh trong ví dụ này là phông chữ, thiết lập bằng đối số
font. Giá trị mặc định làfont = 1, chỉ văn bản thường, trong khifont = 2là đậm,font = 3là nghiêng, vàfont = 4là vừa đậm vừa nghiêng.Điều chỉnh vị trí, kích thước và phông chữ của văn bản
Trong ví dụ sau, bạn sẽ:
MPG.cityso vớiHorsepowertừ khung dữ liệuCars93, với dữ liệu hiển thị bằng vòng tròn rỗng (mặc địnhpch).index3bằng hàmwhich()để xác định số hàng chứa tất cả xe 3 xi-lanh.points()để phủ các vòng tròn đặc,pch = 16, lên tất cả các điểm trong biểu đồ đại diện cho xe 3 xi-lanh.text()với biếnMakenhư trước để thêm nhãn bên phải các xe 3 xi-lanh, nhưng lần này dùngadj = 0.2để đẩy nhãn xa hơn về bên phải, dùng đối sốcexđể tăng kích thước nhãn thêm 20%, và dùng đối sốfontđể đặt nhãn đậm nghiêng.Khi chạy đoạn mã trên, bạn sẽ thu được kết quả sau:
Tự mình thử.
Để tìm hiểu thêm về cách thêm văn bản vào biểu đồ, vui lòng xem video từ khóa học Data Visualization in R của chúng tôi.
Nội dung này được trích từ khóa học Data Visualization in R của DataCamp do Ronald Pearson giảng dạy.