如何查看由ggplot2 geom_boxplot计算的计算变量?

时间:2016-10-02 18:14:39

标签: r ggplot2

我使用ggplot2 geom_boxplot创建了一些箱图。我看到它在我的数据帧上计算了一组变量;宽度,ymin,lower,notchlower,middle,notchupper,upper和ymax。似乎应该有一种方法来提取这些计算值,以便我可以查看它们。我尝试过summary(boxplot)和str(boxplot)。这些给了我很多关于我的绘图是如何创建的信息,但它们没有列出计算变量。

有没有办法快速显示这些变量?

2 个答案:

答案 0 :(得分:1)

您可以按照此处的建议使用ggplot_buildhttps://stackoverflow.com/a/25381297/3638464

library(ggplot)

gg_bp <- 
  ggplot(mpg, aes(class, hwy)) +
  geom_boxplot()

gg_bp预览:

boxplot

gg_bp_build <- 
  ggplot_build(gg_bp)

gg_bp_build$data
#> [[1]]
#>   ymin lower middle upper ymax                       outliers notchupper
#> 1   23  24.0   25.0  26.0   26                                  26.41319
#> 2   23  26.0   27.0  29.0   33                 35, 37, 35, 44   27.69140
#> 3   23  26.0   27.0  29.0   32                                  27.74026
#> 4   21  22.0   23.0  24.0   24                             17   23.95278
#> 5   15  16.0   17.0  18.0   20                 12, 12, 12, 22   17.55009
#> 6   20  24.5   26.0  30.5   36                         44, 41   27.60241
#> 7   14  17.0   17.5  19.0   22 12, 12, 25, 24, 27, 25, 26, 23   17.90132
#>   notchlower x PANEL group ymin_final ymax_final  xmin  xmax xid newx new_width
#> 1   23.58681 1     1     1         23         26 0.625 1.375   1    1      0.75
#> 2   26.30860 2     1     2         23         44 1.625 2.375   2    2      0.75
#> 3   26.25974 3     1     3         23         32 2.625 3.375   3    3      0.75
#> 4   22.04722 4     1     4         17         24 3.625 4.375   4    4      0.75
#> 5   16.44991 5     1     5         12         22 4.625 5.375   5    5      0.75
#> 6   24.39759 6     1     6         20         44 5.625 6.375   6    6      0.75
#> 7   17.09868 7     1     7         12         27 6.625 7.375   7    7      0.75
#>   weight colour  fill size alpha shape linetype
#> 1      1 grey20 white  0.5    NA    19    solid
#> 2      1 grey20 white  0.5    NA    19    solid
#> 3      1 grey20 white  0.5    NA    19    solid
#> 4      1 grey20 white  0.5    NA    19    solid
#> 5      1 grey20 white  0.5    NA    19    solid
#> 6      1 grey20 white  0.5    NA    19    solid
#> 7      1 grey20 white  0.5    NA    19    solid

答案 1 :(得分:-1)

编辑我之前的回答

这个问题并不恰当,因为(a)它没有提供可重复的例子,(b)它承认使用graphics::boxplot()的结果来获得答案的可能性。

OP缺少的是ggplot2::geom_boxplot返回ggplot2图形对象,而不是数据的摘要统计。

对于基本图形解决方案,请参阅help(boxplot) - boxplot函数返回您想要的内容,而不是尝试从geom_boxplot()获取此内容。

> bp <- boxplot(mpg~cyl, data=mtcars) 
> 
> str(bp)
List of 6
 $ stats: num [1:5, 1:3] 21.4 22.8 26 30.4 33.9 ...
 $ n    : num [1:3] 11 7 14
 $ conf : num [1:2, 1:3] 22.4 29.6 18.3 21.1 14.3 ...
 $ out  : num [1:2] 10.4 10.4
 $ group: num [1:2] 3 3
 $ names: chr [1:3] "4" "6" "8"

stats组件包含每个组的5个数字摘要。

> bp$stats
     [,1]  [,2] [,3]
[1,] 21.4 17.80 13.3
[2,] 22.8 18.65 14.3
[3,] 26.0 19.70 15.2
[4,] 30.4 21.00 16.4
[5,] 33.9 21.40 19.2
>

ggplot2中,摘要由stat_boxplot计算。但是,我知道无法从结果中提取这些