如何在ggplot批量绘图函数中添加物种名称作为图表标签?
为每个物种散点图添加物种名称的解决方案
针对你的需求,有几种简单的修改方式,帮你给每个散点图加上对应物种名称:
方法1:添加图表标题
利用子集内的物种名称(每个子集的Species列值一致),通过ggtitle()将物种名称设为图表标题:
plot_fun = by(stap1, stap1$Species, function(i) { ggplot(i) + geom_point(aes(Trap, Catch)) + ggtitle(i$Species[1]) # 取子集第一个物种名称作为标题 })
方法2:在图表内部添加物种名称
如果希望物种名称显示在图表区域内(比如右上角),可以用annotate()添加文本:
plot_fun = by(stap1, stap1$Species, function(i) { ggplot(i) + geom_point(aes(Trap, Catch)) + annotate("text", x = max(i$Trap), y = max(i$Catch), # 定位到数据右上角 label = i$Species[1], hjust = 1, vjust = 1) # 文本对齐方式 })
方法3:用分面批量生成更高效
相比by()循环,用ggplot2的分面功能可以一次性生成所有物种的图,且自动为每个子图标注物种名称,代码更简洁:
ggplot(stap1, aes(x = Trap, y = Catch)) + geom_point() + facet_wrap(~Species) # 按物种拆分生成子图,每个子图自带物种标签
内容的提问来源于stack exchange,提问作者Bugguy
相关产品推荐
相关产品推荐

