September 14, 2016

Ở các bài trước mình có tập tành vẽ biểu đồ tương quan với nhãn bằng việc kết hợp 2 gói (package) ggplot2ggthemes. Trong phạm vi bài này, mình vẫn sử dụng 2 gói trên và có kết hợp thêm gói ggrepel để khắc phục một vài điểm nhỏ để chúng ta có được một đồ tương đối hoàn chỉnh.

Trong ví dụ mà mình vẽ biểu đồ là dữ liệu về 2 chỉ số G (%) và IV (%) để xác định tổ thành tầng cây cao, thông qua công thức của Daniel Marmillod, cụ thể:
Theo Thái Văn Trừng (1983) thì những loài cây nào có chỉ số IV (%) ≥ 5% mới thực sự có ý nghĩa về mặt sinh thái trong quần xã thực vật rừng. Để thể hiện chi tiết giá trị (độ) quan trọng IV (%) của các loài tham gia trong công thức tổ thành trên biểu đồ thì sẽ xuất hiện trường hợp có một vài loài, nhiều loài có giá trị IV (%) gần giống nhau, thậm chí có thể bằng nhau. Vì vậy, khi thể hiện trên biểu đồ (điểm, nhãn...) sẽ gần nhau, hoặc trùng nhau, như vậy trông sẽ rất khó coi và không khoa học. Thực ra, những gì mình nói ra trên đây sẽ là khó hiểu, bởi rất ít trường hợp thể hiện biểu đồ như mình và để hình dung dễ hơn mình sẽ thể hiện qua các biểu đồ để mọi người dễ hiểu.

Trong gói mới (ggrepel) mà mình kết hợp với ggplot2 và ggthemes có layer rất hữu ích đó là geom_text_repel (x, y, label...) có thể khắc phục được nhược điểm mà mình có đề cập bên trên. Chúng mình cùng bắt đâu qua ví dụ dưới đây nhé.

Trước tiên phải gọi các packages cần sử dụng:
# > library(ggplot2)
# > library(ggthemes)
# Khi mới vẽ các điểm (dot) codes như sau:
x1=ggplot(data=xoanmoc11, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc11$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc11$G))+ ggtitle("Figure 1") + geom_text(aes(label=(loaicay)))
Kết quả ở hình 1 (Figure 1) mới thể hiện phân bố các điểm với trục hoành là độ quan trọng (IV, %) và trục tung là tiết diện ngang (G, %) của các loài tham gia trong công thức tổ thành của tầng cây cao. Bây giờ để thể hiện tên các loài (nhãn) trên biểu đồ, ta thêm layer: geom_text (aes(label=...) kết quả ở hình 2 (Figure 2).
> x1=ggplot(data=xoanmoc11, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc11$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc11$G))+ ggtitle("Figure 2") 
> x12=x1+geom_text_repel(aes(IV,G, label=(loaicay)))


Qua hình 2 (Figure 2) ta có thể nhận thấy một điều nhiều tên loài cây gần sát nhau, trùng nhau tạo nên một biểu đồ chưa thực sự khoa học, thiếu mỹ quan như bên trên mà mình có đề cập. Để khắc phục điều này, trong phạm vi bài này mình kết hợp thêm layer: geom_text_repel (aes(x, y, label=...)) trong gói ggrepel để tạo ra biểu đồ khoa học hơn, đẹp hơn và có thể tạm gọi là “tương đối hoàn chỉnh”. Cụ thể dưới đây. 
> x1=ggplot(data=xoanmoc11, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc11$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc11$G))+ ggtitle("Figure 3")
> x13=x1+geom_text_repel(aes(IV,G, label=(loaicay)))
Qua hình 3 (Figure 3) các bạn có thể nhận thấy các loài cây có chỉ số IV, G gần bằng nhau không chồng lấn lên nhau nữa, mà vẫn biết giá trị IV, G của từng loài. Bạn có thể so sánh giữa hình 2 và hình 3 để thấy sự khác biệt nhé.

Dưới đây mình vẽ thêm một vài hình để các bạn thấy sự khác biệt sau khi khắc phục điểm hạn chế bên trên mà mình có đề cập bằng layer: geom_text_repel() trong gói ggrepel.

> x2=ggplot(data=xoanmoc2, aes(x=IV, y=G))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("IV, %")+ ylab("G, %")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoanmoc2$IV))+ scale_y_continuous(breaks=extended_range_breaks()(xoanmoc2$G))+ ggtitle("Figure 4")+ geom_text(aes(label=loai))



 Và thay layer: geom_text () trong ggplot 2 bằng layer: geom_text_repel() trong ggrepel.

> x22=x2+geom_text_repel(aes(IV,G, label=(loai)))

 
Khi vẽ biểu đồ trên với nhãn sẽ có một trường hợp nữa xuất hiện, đó là một vài loài cây có cùng một giá trị và điều đó sẽ được thể hiện ở hình dưới đây sau khi sử dụng layer: geom_text_repel().

> xts=ggplot(data=xoants1, aes(x=ni, y=Ki))+ geom_point()+ theme_bw()+ theme_classic()+ xlab("Ni")+ ylab("Ki")+ geom_rangeframe()+ theme_tufte()+ scale_x_continuous(breaks=extended_range_breaks()(xoants1$ni))+ scale_y_continuous(breaks=extended_range_breaks()(xoants1$Ki))+ ggtitle("Figure 6")+geom_text(aes(label=loai))
Các bạn sẽ thấy ở hình 6 (Figure 6) có nhiều điểm các loài cây cùng một giá trị, khi thể hiện tên (nhãn) các loài sẽ chồng lên nhau. Và khắc phục điều đó, ta có thể làm như sau:
> xts1=xts+geom_text_repel(aes(label=loai))


Trên đây mình có giới thiệu tới các bạn việc kết hợp 3 gói (ggplot2, ggthemes và ggrepel) khác nhau trong R để vẽ một biểu đồ khoa học, đẹp và tương đối hoàn chỉnh. Các bạn có thể thực hành để thấy sự khác biệt nhé.

0 comments:

chủ đề

Ăn của rừng bài báo khoa học bản quyền bành trướng Bảo vệ cây là bảo vệ chính mình biến đổi khí hậu Biển Đông Biết sai vẫn cứ làm biểu đồ biểu đồ hộp biểu đồ sai số chuẩn Biểu đồ tương quan Biểu đồ với nhãn bon-sai boxplot buoc-dau-nghien-cuu-khoa-hoc but-ky-doi-toi Cái tài Cái tâm Cái tầm canh tác đất dốc Cây xanh đô thị Cha chung không ai khóc cha nào con nấy Chân thiện mỹ chân trong chân ngoài chạy chức chạy quyền Che chở Chết toàn tập chọn cách ta sống chữ tín chuyện giờ mới kể có vấn đề Cơm áo gạo tiền Con cháu các cụ con người biến thái Con ông cháu cha công nghệ 4.0 correlation matrix corrgram corrplot Cứ đi rồi sẽ tới cuộc cách mạng 4.0 Đam mê đàn gảy tai trâu danh dự danh xưng phù phiếm Đạo đức sống đào tạo sau đại học Đạo văn Đấu tranh sinh tồn day-do Đẹp trong tâm hồn Đi tắt đón đầu dở khóc dở cười đọc nghe nhìn và cảm nhận Dồn điền đổi thửa Động lực dựa vào nhau mà sống error bar plot GGalyy ggcorplot ggExtra ggiraph ggplot2 ggrepel ggthemes Giáng sinh Giáo dục giàu nghèo giục tốc bất đạt Góc quê gridExtra Hài lòng Hai mặt một lời hãy là chính mình hãy sống có trách nhiệm hơn hèn nhát Hiệu sau ứng bão hiệu ứng domino formosa Hiệu ứng sau bão Hòa cả làng học giả bằng thật hoc-lam-tho hoc-r-moi-ngay Ích kỷ KH&CN khả năng Khoán chi Không lối thoát Kiểm định thống kê kỹ năng mềm Kỷ niệm vùng miền Label lan rừng Lão Hạc thế kỷ 21 Liêm chính lính đánh thuê Lợi dụng lợi ích nhóm lừa trên gạt dưới lười suy nghĩ Lương thiện giả vờ Lương y Ma trận tương quan Mẹ Miền cát trắng miền đất hứa Mộc Châu món ăn địa phương Mùa gặt Mục đích sống Mường La Nghịch lý chất lượng - số lượng Nghiên cứu khoa học Ngồi chơi xơi nước Nhân cách nhu cầu Những cung đường tôi đã qua NN&PTNT phân cấp sinh trưởng phân tích hậu định phan-bien-xa-hoi plot3D psych Quán Nha R Rừng ngập mặn rước hổ về nhà rvg sach-hay SARS-CoV-2 sau-luy-tre-lang sciplot Số cây Số liệu trống không Sông Châu sống chết mặc ai sức ỳ sức ỳ bản thân suy thoái Tầm lùn tâm sự tâm sự buồn thảm họa formosa thảm họa môi trường tham nhũng Thân cô thế cô thắng cố ngựa Thăng trầm Thấy vậy mà không phải vậy Thế cây Thế cây cổ Thế cây thế người Thông điệp cuộc đời Thống kê mô tả Thông tư Thước đo lòng người Thủy điện Tiên trách kỷ hậu trách nhân Tình bạn cao đẹp Tình người Tố chất làm khoa học tội đếch gì mà phải ghét ai Tôi sợ giầu lắm track changes Trải nghiệm tre già măng mọc trở mặt Trung thực tư duy Tự sự Tư tưởng thụt lùi tuy duy nhiệm kỳ Ứng dụng R trong lâm nghiệp Văn hóa cảm ơn Văn hóa giao thông văn hóa ngầm Văn hóa xin lỗi Xấu khen đẹp chê Xỏ nhầm giầy xoay đầu đổi đít Ý tưởng

bài đã đăng

Powered by Blogger.

Disqus Shortname

Widget Recent Post No.

Widget Random Post No.

Widget Recent Comment No.

PageNavi Results No.

Labels Max-Results No.

Comments system

Contact Form

Name

Email *

Message *

bài đăng phổ biến

số lượt ghé qua trang blog

Bài đăng nổi bật

Thế cây thế người

T hế trong CÂY CẢNH thể hiện các chi tiết về CẤU TRÚC ở mọi phương diện, đa góc nhìn (trên dưới trái phải ngang dọc), trong đ...

Bài đăng phổ biến

bài xem nhiều nhất