Trong cái note này, mình
chia sẻ cách vẽ biểu đồ histogram về chỉ tiêu phân bố số cây theo cỡ đường kính
(N-D) của một số trạng thái rừng tự nhiên bằng R. Qua đây mình cũng đưa ra biểu
đồ mà thông thường hay vẽ bằng excel để các bạn thấy sự khác biệt.
Nói qua một chút về phân bố
số cây theo cỡ đường kính: Cỡ kính bao gồm: 10-15, 15-20, 20-25, 25-30, 30-35,
35-40, 40-45, 50-55, 55-60, và trên 60 (thay vì viết “> 60” trong excel, các
bạn phải viết “Tren 60”, bởi, yêu cầu nghiêm ngặt về “văn phạm” trong R).
Trường hợp, muốn gộp
(group) các trạng thái rừng trên cùng một cột (histogram) theo từng cỡ kính các
bạn có thể tiến hành như sau:
> r=ggplot(data=LRTX, aes(x=Co_kinh, y=N, group=Location,
fill=Location))+ geom_bar(stat="identity")
Bạn có thể nhìn thấy ở
hình trên, như mình có nói, cỡ kính > 60cm lại nằm ở đầu thang giá trị cỡ
kính (trục hoành) thay vì ở cuối. Bởi, lý dó, dấu “> 60”. Để theo thứ tự, bạn
nên thay dấu “>” bằng từ “Tren”. Và, kết quả:
> r=ggplot(data=LRTX, aes(x=Co_kinh, y=N,
group=Location, fill=Location))+ geom_bar(stat="identity")
Để tách từng trạng thái rừng
cho từng cột thay vì cộng dồn cùng cỡ kính trên cùng một cột, các bạn có thể
làm như sau:
> p=ggplot(data=LRTX,aes( x=Co_kinh, y=N,
fill=Location))+ geom_bar(position="dodge",
stat="identity")+ theme_bw()+theme_classic()
>
p1=p+ geom_rangeframe()+theme_tufte()+
scale_y_continuous(breaks=extended_range_breaks()(LRTX$N))+ xlab("Cỡ kính,
cm")+ ylab("Số cây, cây/ha")
Kết quả hình
trên là tương đối đẹp. Tuy nhiên, để thể hiện đường phân bố (line) cho từng trạng
thái theo các cỡ kính, các bạn có thể làm như sau:
> p2=p1+geom_line(position=position, aes(group=Location,
color=Location))
Để so sánh với
hình vẽ trong excel thông thường, các bạn đưa ra lời nhận xét nhé:
Trên đây mình
có bắt chước để vẽ biểu đồ phân bố số cây theo cỡ đường kính của một số trạng thái
rừng nghiên cứu. Các bạn có thể coppy codes và thay nguồn đầu vào là data=LRTX,
các biến “Location, Co_kinh, N” cũng như thêm các layer để có được các hình, biểu
đồ như ý muốn.