用geom_boxplot绘制分位数

时间:2017-03-28 08:44:44

标签: r ggplot2

我想尽可能多地获取有关我的发行版的信息。我使用以下代码创建了一个盒子图:

  ggplot(nkv.murgang, aes(x = factor(0), nkv.murgang$NK)) +
    geom_boxplot(notch = F, outlier.color = "darkgrey", outlier.shape = 1,
                 color = "black", fill = "darkorange", varwidth = T) + 
    ggtitle("NKV Murgang - Einfamilienhaus") + 
    labs(x = "Murgang", y = "Nutzen / Konsten \n Verhälhniss") 

这会产生:

enter image description here

现在我想在图中绘制相应的值。像这样的东西(水平位置):

enter image description here

以下是我的数据(部分):

我一直在尝试不同的事情,但由于我只知道我的x轴这一事实,我很挣扎。任何tipps如何克服这个?

1 个答案:

答案 0 :(得分:0)

这似乎几乎可以满足您的需求:

df = data.frame(val = runif(10)) # create dummy data

ggplot(df) + geom_boxplot(aes(y=val,x=1)) + # create the boxplot at x=0
geom_text(data=data.frame(q=as.numeric(quantile(df$val))), aes(x=rep(1.5,5),y=q,label=format(q,digits=2))) +  # add quantile values at x=0.5
geom_text(aes(x=0.5,y=median(df$val),label=format(quantile(df$val)[4]-quantile(df$val)[2],digits=2))) + # add interquartile value at x=0.5,y=median
geom_linerange(aes(x=0.55,ymin=quantile(df$val)[2],ymax = quantile(df$val)[4])) + # add linerange for interquartile
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) + #remove x axis
labs(x = "Murgang", y = "Nutzen / Konsten \n Verhälhniss") # add label