【问题标题】:plotting quantiles with geom_boxplot [duplicate]用 geom_boxplot 绘制分位数
【发布时间】:2017-03-28 08:44:43
【问题描述】:

我想获得尽可能多的关于我的发行版的信息。我使用以下代码创建了一个箱线图:

  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") 

这产生:

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

这是我的(部分)数据:

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

【问题讨论】:

  • 请分享数据
  • @mtoto 谢谢。我已经添加了数据
  • 如果你使用coord_flip()你的图片不等于你的代码输出。
  • @mtoto 原来我有那个,然后我删除了它,对不起! (已修复)...图形是水平的还是垂直的并不重要,关键是要绘制分位数
  • @mtoto 确实是(无意的)重复。我通过您提供的链接找到了我的问题的答案。谢谢 ! (重复会发生什么?我应该删除答案吗?-我是社区中的新手)

标签: r ggplot2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 2013-02-25
    • 1970-01-01
    • 2018-05-10
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多