我有其中的测量在不同的日子不同的群体做了一个数据集。
我想通过表示在不同天的与酒吧,根据与重叠以他们errorbars测量天隔开的组不同的组的测量侧杆具有侧。
我在与投资于闪避麻烦geom_bar
上与躲闪同意geom_errorbar
。
下面是一个简单的代码:
days = data.frame(day=c(0,1,8,15));
groups = data.frame(group=c("A","B","C","D", "E"), means=seq(0,1,length=5));
my_data = merge(days, groups);
my_data$mid = exp(my_data$means+rnorm(nrow(my_data), sd=0.25));
my_data$sigma = 0.1;
png(file="bar_and_errors_example.png", height=900, width=1200);
plot(ggplot(my_data, aes(x=day, weight=mid, ymin=mid-sigma, ymax=mid+sigma, fill=group)) +
geom_bar (position=position_dodge(width=0.5)) +
geom_errorbar (position=position_dodge(width=0.5), colour="black") +
geom_point (position=position_dodge(width=0.5), aes(y=mid, colour=group)));
dev.off();
在图中,errorsegments似乎与它的酒吧的固定偏移(对不起,没有允许,即使GGPLOT2是受新手地块)。
当binwidth在调整geom_bar
,偏移不是固定的,从天变为一天。
请注意,这geom_errorbar
和geom_point
闪避串联。 如何获得geom_bar
与其他两个同意?
任何帮助表示赞赏。
对齐问题,其部分原因,到你吧不是代表你想让你的数据。 下面的几行正确:
ggplot(my_data, aes(x=day, weight=mid, ymin=mid-sigma, ymax=mid+sigma, fill=group)) +
geom_bar (position=position_dodge(), aes(y=mid), stat="identity") +
geom_errorbar (position=position_dodge(width=0.9), colour="black") +
geom_point (position=position_dodge(width=0.9), aes(y=mid, colour=group))
第一个变化我根据格式化代码预研风格指南 。
days <- data.frame(day=c(0,1,8,15))
groups <- data.frame(
group=c("A","B","C","D", "E"),
means=seq(0,1,length=5)
)
my_data <- merge(days, groups)
my_data$mid <- exp(my_data$means+rnorm(nrow(my_data), sd=0.25))
my_data$sigma <- 0.1
现在,当我们看数据,我们看到这一天是一个因素,其他一切都是一样的。
str(my_data)
要我转换当日列因素的情节删除空白空间。 检查水平是适当的顺序继续之前。
my_data$day <- as.factor(my_data$day)
levels(my_data$day)
我所做的下一个变化是在你的定义Ÿ aes
参数。 正如我敢肯定,大家都知道,这让ggplot知道到哪里寻找y值。 然后我改变了位置参数“躲闪”和添加了stat="identity"
的说法。 在"identity"
参数告诉ggplot x处绘制年。 geom_errorbar
继承了道奇位置geom_bar
这样你就可以把它指定,但geom_point
并不那么你必须指定值。 默认闪避position_dodge(.9)
ggplot(data = my_data,
aes(x=day,
y= mid,
ymin=mid-sigma,
ymax=mid+sigma,
fill=group)) +
geom_bar(position="dodge", stat = "identity") +
geom_errorbar( position = position_dodge(), colour="black") +
geom_point(position=position_dodge(.9), aes(y=mid, colour=group))
这是一个老问题,但因为我今天遇到了这个问题,我想补充以下内容:
在
geom_bar(position = position_dodge(width=0.9), stat = "identity") +
geom_errorbar( position = position_dodge(width=0.9), colour="black")
的width
内-argument position_dodge
控制的彼此的事情躲闪匀光宽度。 然而,这种宽产生晶须作为棒,这是不希望的可能。 所述position_dodge之外的附加宽度参数控制所述晶须(和条带)的宽度:
geom_bar(position = position_dodge(width=0.9), stat = "identity", width=0.7) +
geom_errorbar( position = position_dodge(width=0.9), colour="black", width=0.3)
有时你把aes(x=tasks,y=val,fill=group)
在geom_bar
而非ggplot
。 这使得自ggplot期待的问题x
你每个组的位置指定。
文章来源: How to make dodge in geom_bar agree with dodge in geom_errorbar, geom_point