www.tuhocr.comCác bạn chạy đoạn code sau trong RStudio là hiểu được logic của cách chú thích trong đồ thị nhé. Data để vẽ đồ thị này mình tạo ra sơ bộ trên Excel sau đó fit regression trong R để tạo ra đường cong smooth.
library(png) ## dùng đề chèn file ảnh
library(grid) ## canh chỉnh vị trí ảnh
image_tuhocr <- readPNG("img/logor.png")
## load dữ liệu tạo đường learning curve
time_learning <- read.delim("dataset/time_learning.txt")
time_learning## x y
## 1 0 0.0
## 2 1 6.0
## 3 2 18.0
## 4 3 30.0
## 5 4 50.0
## 6 5 51.0
## 7 6 48.0
## 8 7 40.0
## 9 8 25.0
## 10 9 20.0
## 11 10 20.5
## 12 11 22.0
## 13 12 28.0
## 14 13 32.0
## 15 14 32.5
## 16 15 33.0
## 17 16 33.0
## 18 17 33.0
## 19 18 33.0
## 20 19 33.0
## 21 20 33.0
## 22 21 33.0
## 23 22 39.0
## 24 23 45.0
## 25 24 50.0
## 26 25 55.0
## 27 26 65.0
## 28 27 75.0
## 29 28 85.0
## 30 29 90.0
## 31 30 95.0
## vẽ đồ thị
plot(time_learning,
xlab = "Tuần",
ylab = "Tốc độ học R",
type = "n",
xlim = c(0, 30),
ylim = c(0, 100),
xaxs = "i",
yaxs = "i")
## tách hệ số đường learning curve
fit_polynomial <- lm(y ~ poly(x, 12, raw = TRUE), data = time_learning)
fit_polynomial$coefficients[1] -> he_so_poly_b0
fit_polynomial$coefficients[2] -> he_so_poly_b1
fit_polynomial$coefficients[3] -> he_so_poly_b2
fit_polynomial$coefficients[4] -> he_so_poly_b3
fit_polynomial$coefficients[5] -> he_so_poly_b4
fit_polynomial$coefficients[6] -> he_so_poly_b5
fit_polynomial$coefficients[7] -> he_so_poly_b6
fit_polynomial$coefficients[8] -> he_so_poly_b7
fit_polynomial$coefficients[9] -> he_so_poly_b8
fit_polynomial$coefficients[10] -> he_so_poly_b9
fit_polynomial$coefficients[11] -> he_so_poly_b10
fit_polynomial$coefficients[12] -> he_so_poly_b11
fit_polynomial$coefficients[13] -> he_so_poly_b12
## vẽ đường learning curve
curve(he_so_poly_b0 + he_so_poly_b1*x^1 + he_so_poly_b2*x^2 + he_so_poly_b3*x^3 +
he_so_poly_b4*x^4 + he_so_poly_b5*x^5 + he_so_poly_b6*x^6 +
he_so_poly_b7*x^7 + he_so_poly_b8*x^8 + he_so_poly_b9*x^9 +
he_so_poly_b10*x^10 + he_so_poly_b11*x^11 + he_so_poly_b12*x^12,
0, 30,
add = TRUE, col = 3, lwd = 2)
## xây dựng hàm get predicted y-value
get_predicted_y <- function(x){
he_so_poly_b0 + he_so_poly_b1*x^1 + he_so_poly_b2*x^2 + he_so_poly_b3*x^3 +
he_so_poly_b4*x^4 + he_so_poly_b5*x^5 + he_so_poly_b6*x^6 +
he_so_poly_b7*x^7 + he_so_poly_b8*x^8 + he_so_poly_b9*x^9 +
he_so_poly_b10*x^10 + he_so_poly_b11*x^11 + he_so_poly_b12*x^12
}
## vẽ các đường check-point
lines(c(5, 5), c(0, get_predicted_y(5)), col = "blue", lwd = 1, lty = 1)
lines(c(10, 10), c(0, get_predicted_y(10)), col = "red", lwd = 1, lty = 1)
lines(c(15, 15), c(0, get_predicted_y(15)), col = "darkgreen", lwd = 1, lty = 1)
lines(c(20, 20), c(0, get_predicted_y(20)), col = "purple", lwd = 1, lty = 1)
# đưa văn bản vào
text(5, 57, "Biết cách subset vector, matrix, \nlist, data frame")
text(10, 29, "Biết cách \nxây dựng \nfunction")
text(15, 40, "Biết cách vẽ đồ thị \nvà sắp xếp dữ liệu")
text(16, 82, "LỘ TRÌNH HỌC R CHO NGƯỜI MỚI BẮT ĐẦU \nThS. Duc Nguyen | Chuyên đào tạo kỹ năng R \nwww.tuhocr.com",
col = 2, cex = 1.5)
text(25, 27, "Từ tuần 20 trở đi,\nBạn có nền tảng vững chắc về R
nên sẽ học rất nhanh về \nxác suất thống kê, phân tích
số liệu, viết báo cáo khả lập, ...")
## chèn hình ảnh vào
grid.raster(image_tuhocr, x= 0.2, y= 0.75, width = 0.1)Trên đây là hướng dẫn chèn hình và chú thích trong đồ thị R. Để học R bài bản từ A đến Z, thân mời Bạn tham gia khóa học “HDSD R để xử lý dữ liệu” để có nền tảng vững chắc về R nhằm tự tay làm các câu chuyện dữ liệu của riêng mình!
ĐĂNG KÝ NGAY:
https://www.tuhocr.com/register