Thursday, October 1, 2015

Vẽ biểu đồ tán xạ chồng lên nhau

Một bạn đọc viết thư hỏi làm sao vẽ biểu đồ tán xạ (scatterplot) chồng lên nhau. Số liệu là nhiệt độ thu thập từ 2 địa điểm BC và CO cho 12 tháng như sau:

Thang = 1:12
BC = c(15.5, 21.5,20.6,23.6,26.4,29.2,29,29.3,28.4,25.9,20.8,18.8)
CO = c(14.9,21,20,23,26.1,28.8,28.7,29.1,20.2,25.6,20.4,18.2)



Để vẽ biểu đồ tán xạ thì có nhiều cách. Cách đơn giản nhất là dùng hàm plot đơn giản, nhưng overlay:

plot(BC ~ Thang, pch=16, col="blue", type="l", lwd=2, ylab=" ")

# Báo cho R biết là vẽ thêm một biểu đồ cho CO, chồng lên biểu đồ cũ

par(new=T)

plot(CO ~ Thang, pch=16, col="red", type="l", lwd=2, axes=F, xlab="Tháng", ylab="Nhiệt độ")

Nhưng cách thứ hai là dùng ggplot2 thì hay và đẹp hơn. Với cách này, chúng ta tạo thành 3 biến số: Month, Location, và Temp.

Temp = c(BC, CO)
Location = c(rep("BC", 12), rep("CO", 12))
Month = c(1:12, 1:12)
dat = data.frame(Month, Location, Temp)

# Gọi ggplot2
library(ggplot2)
p = ggplot(dat, aes(x=Month, y=Temp, color=Location))
p = p + geom_point(lwd=3) + geom_line() + theme_classic()
p + scale_x_discrete(limits = c(1:12)) + scale_y_continuous(breaks=seq(10,35,2))

Kết quả là:


 # Nếu cần thì save biểu đồ dưới dạng png
png(filename="~/Google Drive/_QA Book (Vietnamese)/Graphs/test.png")
p
dev.off()





No comments:

Post a Comment