我正在尝试使用ggplot2在R中创建系数图。由于我已经计算了数据,因此我正在使用geom_point和geom_errorbarh。由于我想为每个变量包括两个模型/组,因此,我试图将系数和区间置于彼此之下并更改其颜色。不幸的是,我没有发现这两种方法的工作原理。
我知道我应该使用colour = ...或scale_colour_manual(values = ...)之类的东西,但随后出现错误消息“错误:美学必须为长度1或与数据相同”
对于闪避,我已经尝试过geom_point(position = dodge),但是R似乎不再知道此命令。
example<-data.frame(group=c("group1", "group2", "group1", "group2"),
variable=c("variable1", "variable1", "variable2", "variable2"),
value=c(0.4, 0.2, 0.3, 0.2),
min=c(0.3, 0.1, 0.2, 0.1),
max=c(0.5, 0.3, 0.4, 0.3))
groupcolor<-c("group1"="red", "group2"="purple")
ggplot(example, aes(x=value, y=variable))+
theme_bw()+
scale_x_continuous(breaks=seq(0.0,0.6,0.2), limits=c(0.0, 0.6))+
geom_point(size=2)+
scale_colour_manual(values=groupcolor)+
geom_errorbarh(mapping=aes(xmin=min, xmax=max), height=0.1)
这是我正在使用的代码。我想要一个在y轴上具有两个变量,在x轴上具有系数及其间隔的图,对于每个变量,我都需要两个系数:一个为红色(group1),一个为紫色(group2)。我希望他们彼此之间。
答案 0 :(得分:2)
这是我要接近您理想输出的方法。
dodge <- .5 # for consistancy between layers
ggplot(example, aes(x = variable, y = value, color = group)) +
geom_point(size=2,
position = position_dodge(width = dodge)) +
geom_errorbar(aes(ymin = min, ymax = max), width = 0.1,
position = position_dodge(width = dodge)) +
scale_colour_manual(values=groupcolor) +
scale_y_continuous(breaks=seq(0.0,0.6,0.2), limits=c(0.0, 0.6)) +
coord_flip() +
theme_bw()
我切换为垂直构建图,它们通过coord_flip()
翻转轴的末端,因为position_dodge()
仅允许您在“宽度”上躲避。 position = "dodge"
的某些功能确实适用于某些几何图形,但不能像完整功能那样对微调量进行微调控制。让我知道您是否遇到任何困难。