如何在R中绘制单地点植被覆盖百分比统计图
单地点植被覆盖百分比统计图绘制指南(R语言)
嘿,我来帮你搞定这个R绘图的事儿!你手里有同一地点4月、5月三个样带的植被覆盖数据,想要画出和参考图风格类似的统计图,完全不用慌,我这就一步步带你操作~
步骤1:把数据导入R
首先咱们得把数据转换成R能识别的格式,我已经把你提供的数据整理成了代码,直接运行就能生成数据框;要是你已经把数据存成CSV文件,也可以用read.csv("你的文件名.csv")来读取:
# 创建植被覆盖数据框 veg_data <- data.frame( M = rep(c("apr", "may"), each = 33), T = rep(rep(1:3, each = 11), 2), Q = rep(1:11, 6), V = c(0,0,0,0,48,0,0,0,0,0,0, 0,0,0,0,19,69,10,0,0,0,0, 0,0,0,49,2,0,0,0,0,0,0, 0,0,0,0,52,0,0,0,0,0,0, 0,0,0,0,25,85,18,0,0,0,0, 0,0,0,61,7,0,0,0,0,0,0) ) # 把月份转成因子,保证绘图时按4月、5月的顺序展示 veg_data$M <- factor(veg_data$M, levels = c("apr", "may"))
步骤2:加载绘图工具
咱们用ggplot2来画图,这是R里最常用的统计绘图包,功能强还容易调整样式。如果还没安装过,先运行安装代码:
# 安装ggplot2(仅第一次使用时需要) install.packages("ggplot2") # 加载包 library(ggplot2)
步骤3:绘制统计图(两种方案选其一)
从你提到的参考图风格来看,我准备了两种贴合需求的绘图方案,你可以根据自己的偏好选择:
方案1:点图+箱线图(展示每个样方的原始数据)
这个图能清晰看到每个样方的植被覆盖值,同时箱线图可以展示每个样带-月份组的分布情况,适合呈现原始数据:
ggplot(veg_data, aes(x = factor(T), y = V, color = M)) + # 绘制箱线图,展示数据分布 geom_boxplot(width = 0.5, alpha = 0.2) + # 绘制每个样方的点,用抖动避免重叠 geom_jitter(width = 0.2, size = 2) + # 设置坐标轴标签和标题 labs( x = "样带编号 (T)", y = "植被覆盖百分比 (%)", title = "单地点不同月份植被覆盖统计", color = "月份" ) + # 用简洁的主题样式 theme_minimal() + # 按月份分面,方便对比 facet_wrap(~M)
方案2:柱状图+误差棒(展示平均覆盖值)
如果参考图是侧重展示每个样带的平均覆盖水平,这个方案就很合适,我们先计算每个组的均值和标准差,再绘制带误差棒的柱状图:
# 先加载dplyr包来汇总数据(没装过的话先运行install.packages("dplyr")) library(dplyr) # 计算每个月份-样带组的均值和标准差 summary_data <- veg_data %>% group_by(M, T) %>% summarise( mean_V = mean(V), sd_V = sd(V), .groups = "drop" ) # 绘制柱状图+误差棒 ggplot(summary_data, aes(x = factor(T), y = mean_V, fill = M)) + geom_col(position = position_dodge(width = 0.8), width = 0.7) + geom_errorbar(aes(ymin = mean_V - sd_V, ymax = mean_V + sd_V), position = position_dodge(width = 0.8), width = 0.2) + labs( x = "样带编号 (T)", y = "平均植被覆盖百分比 (%)", title = "单地点不同月份植被覆盖统计", fill = "月份" ) + theme_minimal()
步骤4:自定义样式(可选)
要是想让图更贴近参考图的配色或风格,可以调整颜色、主题细节,比如给4月和5月设置专属颜色:
ggplot(veg_data, aes(x = factor(T), y = V, color = M)) + geom_boxplot(width = 0.5, alpha = 0.2) + geom_jitter(width = 0.2, size = 2) + labs(x = "样带编号 (T)", y = "植被覆盖百分比 (%)", title = "单地点植被覆盖统计", color = "月份") + theme_minimal() + facet_wrap(~M) + # 自定义4月为深绿,5月为橙红 scale_color_manual(values = c("apr" = "#2E8B57", "may" = "#FF6347"))
内容的提问来源于stack exchange,提问作者R.Sinclair
相关产品推荐
相关产品推荐

