小编Jmi*_*i47的帖子

R-Programming - ggplot2 - boxplot 问题(varwidth & position_dodge / stat_summary & position_dodge)

我目前正在使用 ggplot2 用箱线图显示一些特征分布。我可以生成一些简单的箱线图、更改颜色、形式等,但我无法实现结合多个选项的箱线图。

1°) 我的目的是显示男性和女性的并排箱线图,这可以用position = position_dodge(width=0.9). 我希望箱线图的宽度与样本的大小成正比,这可以通过var_width=TRUE. 第一个问题:当我将两个选项放在一起时,它不起作用,我收到以下消息:

position_dodge 需要不重叠的 x 间隔

当使用箱线图var_width=TRUEposition_dodge在一起:

在此处输入图片说明

我试图改变情节的大小,但没有帮助。如果我跳过var_width=TRUE,则箱线图被正确躲避。有没有办法解决这个问题,或者这是ggplot2的限制吗?

2°) 此外,我想显示构建箱线图的每个样本的大小。我可以用 进行计算stat_summary(fun.data = give.n,但不幸的是,当箱线图的位置相似时,我还没有找到避免数字相互重叠的方法。我尝试使用hjust&vjust来更改数字的位置,但它们似乎具有相同的起源,因此无济于事。

stats_summary躲避箱线图时产生的重叠数字:

在此处输入图片说明

由于没有标签,我无法使用geom_text或找不到如何将统计信息传递给geom_text. 所以第二个问题是:如何在自己的箱线图上很好地显示每个数字?

这是我的代码:

`library(ggplot2)
# function to get the median of my sample
give.n <- function(x){
  return(c(y = median(x), label = length(x)))
}

plot_boxes <- function(mydf, mycolumn1, mycolumn2) {

  mylegendx <- deparse(substitute(mycolumn1))
  mylegendy <- deparse(substitute(mycolumn2))


  g2  <- ggplot(mydf, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
0
解决办法
548
查看次数

标签 统计

ggplot2 ×1

r ×1