我有一对点略偏移的点。每对点都有相关的误差线。我已经指定该对中第一个点的符号与第二个点的符号不同(闭合圆与开圆)。我希望这样,错误栏不会通过打开的符号显示。
这是一个模拟数据集:
x = runif(4,-2,2)
x_1 = runif(4,-1,3)
dfr <- data.frame(
x = c(x, x_1),
y = rep(c("A","B","C","D"), 2),
upper = c(x+2, x_1+1),
lower = c(x-2, x_1-2),
type = rep(c("alpha", "beta"), each = 4))
这是情节:
dodge=position_dodge(width=0.5)
ggplot(dfr,aes(x=y,y=x,colour=type)) +
geom_point(size=8,aes(shape=type),position=dodge) +
geom_errorbar(aes(ymax=upper,ymin=lower),position = dodge) +
scale_colour_manual(values = c('gray','black')) +
scale_shape_manual(values = c(19,21)) +
coord_flip() +
opts(legend.position="none")
感谢您提供的任何帮助!
答案 0 :(得分:4)
我想不出一种方法来制作一个'开放'点,而不是让错误栏显示低谷。这样做的唯一方法是用与背景相同的颜色填充点,但是通过该点不会看到网格线。
要执行此操作,请将fill
美学映射到类型,并使用填充颜色scale_fill_manual
指定grey90
,这是theme_grey
设置:
ggplot(dfr,aes(x=y,y=x,colour=type, fill=type)) +
geom_errorbar(aes(ymax=upper,ymin=lower),position = dodge) +
geom_point(size=8,aes(shape=type),position=dodge) +
scale_colour_manual(values = c('gray','black')) +
scale_fill_manual(values=c('grey', 'grey90')) +
scale_shape_manual(values = c(19,21)) +
coord_flip() +
opts(legend.position="none")
答案 1 :(得分:1)
为什么不使用color
,如下面修改后的代码所示。它也将填补黑圈。不确定这是否可以接受。
ggplot(dfr,aes(x=y,y=x,colour=type)) +
geom_point(size=8,position=dodge) +
geom_errorbar(aes(ymax=upper,ymin=lower),position = dodge) +
scale_colour_manual(values = c('gray','black')) +
coord_flip() +
opts(legend.position="none")