我正在尝试绘制这些数据:
data(comp)
Habitat Used Available SDU SDA
1 Forest 63.2 85.1 32.0 12.8
2 Open 18.9 3.3 24.8 1.4
3 Edge 15.4 7.8 10.0 4.6
4 Wetland 2.5 1.2 6.1 3.5
5 Developed 0.0 3.5 0.0 6.7
使用此代码:
ggplot()+
geom_point(data=comp,size=3,fill="white",shape=21,aes(x=Habitat,y=Available))+
geom_errorbar(data=comp,aes(x=Habitat,ymin=Available-SDA,ymax=Available+SDA,width=.1))+
geom_point(data=comp,size=3,fill="black",shape=21,aes(x=Habitat,y=Used))+
geom_errorbar(data=comp,aes(x=Habitat,ymin=Used-SDU,ymax=Used+SDU,width=.1))+
theme_classic()
这给了我这个 graph:
出色!
但是,这些错误栏无法读取,因为它们重叠!如何偏移两个点(可能用于“左”和“可用”到右侧),以便我可以正确地看到每个错误栏?
我尝试过position_dodge和geom_jitter而不是geom_point,但是我无法让它们运行起来。我试过搜索,但我没有取得多大成功。
提前谢谢!
答案 0 :(得分:1)
将您的数据转换为" long"格式,然后您可以将Used和Available映射到颜色美学。这样可以更容易区分它们,减少所需的代码量,并且可以轻松躲避它们(使用position_dodge()
),这样它们就不会重叠:
library(reshape2)
library(ggplot2)
comp.m = melt(comp, id.var="Habitat")
comp.m = data.frame(comp.m[1:10,], err=comp.m[11:20,3])
pd = position_dodge(0.5)
ggplot(comp.m) +
geom_point(aes(Habitat, value, color=variable), position=pd) +
geom_errorbar(aes(Habitat, ymin=value - err, ymax=value + err,
color=variable), width=0.3, position=pd) +
theme_classic() +
labs(color="")