自定义R箱形图

色度

我想画一些箱形图,它表示我的数据的中位数。与常规的箱形图相比,我想将框扩展到我的数据的最小值和最大值,而不是四分位数。例子:

x <- c(1,3,5,7,9)

x的常规箱线图将具有以下统计信息:

  • 1:降低晶须
  • 3:盒子的下端
  • 5:中位数
  • 7:盒子的上端
  • 9:上胡须

我想得到:

  • 1:盒子的下端
  • 5:中位数
  • 9:盒子的上端

有人可以帮助我吗?

马克·彼得森

在In中,ggplot您可以通过在通话中设置这些临界值来明确控制这些临界值。

ggplot() +
  geom_boxplot(
    aes(x = 1
        , lower = min(x)
        , middle = median(x)
        , upper = max(x)
        , ymin = min(x)
        , ymax = max(x))
    , stat = "identity"
  )

在此处输入图片说明

如果您有多个组,则可能需要先分别计算这些点。在这里,使用dplyr

iris %>%
  group_by(Species) %>%
  summarise(min = min(Petal.Length)
            , max = max(Petal.Length)
            , median = median(Petal.Length)
            ) %>%
  ggplot() +
  geom_boxplot(
    aes(x = Species
        , lower = min
        , middle = median
        , upper = max
        , ymin = min
        , ymax = max)
    , stat = "identity"
  )

在此处输入图片说明

如果要添加“传奇”,则可能需要做更多调整。但是,cowplot相对而言,简单地以所需方式创建标记的图并将其用作图例相对容易。在下面,我创建与上述相同的箱线图(但将其保存到变量中),并创建一个新的图线以用作图例(根据需要进行修改)。

basePlot <-
  iris %>%
  group_by(Species) %>%
  summarise(min = min(Petal.Length)
            , max = max(Petal.Length)
            , median = median(Petal.Length)
  ) %>%
  ggplot() +
  geom_boxplot(
    aes(x = Species
        , lower = min
        , middle = median
        , upper = max
        , ymin = min
        , ymax = max)
    , stat = "identity"
  )


legendPlot <-
  data.frame(lower = 1, middle = 2, upper = 3) %>%
  ggplot(
    aes(x = 1
        , lower = lower
        , middle = middle
        , upper = upper
        , ymin = lower
        , ymax = middle
    )
  ) +
  # ggtitle("Legend") +
  geom_boxplot(stat = "identity") +
  scale_y_continuous(
    name = ""
    , breaks = 1:3
    , labels = c("Minimum", "Median", "Maximum")
  ) +
  scale_x_continuous("Legend", position = "top") +
  theme(axis.text.x = element_blank()
        , axis.title.x = element_text(face = "bold"))

然后,加载cowplot(请注意,我正在重置主题,因为会cowplot自动加载它自己的主题,而我不在乎),并使用来创建布局plot_grid请注意,这里我将创建两个单独的列,以使图例更小并垂直居中。你可以玩rel_widthsrel_heights,如果你要调整的细节。scale也是一种选择,但我不喜欢它的工作方式rel_widths。)

library(cowplot)
theme_set(theme_minimal())


plot_grid(
  basePlot
  , plot_grid(
    ggplot()
    , legendPlot
    , ggplot()
    , ncol = 1
  )
  , rel_widths = c(1, 0.33)
)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

r箱形图倾斜的标签x轴

来自分类Dev

R中的多个箱形图

来自分类Dev

R中多个条件的多个箱形图

来自分类Dev

R中的重叠图和箱形图

来自分类Dev

自定义素面图

来自分类Dev

自定义图例R图(晶格)

来自分类Dev

箱形图格子

来自分类Dev

R:如何标记箱形图的x轴

来自分类Dev

R:具有2个或更多系列的箱形图

来自分类Dev

R箱线图:如何自定义箱线图的外观(例如,删除线条或边框,更改异常值的符号)

来自分类Dev

在自定义布局中排列R图

来自分类Dev

R中的箱形图到误差图的转换

来自分类Dev

如何自定义属于包的R函数中的图?

来自分类Dev

具有自定义点尺寸的R点图

来自分类Dev

如何在R中自定义bin图

来自分类Dev

如何在R中显示箱形图的各个点?

来自分类Dev

自定义蜂巢图

来自分类Dev

在R中的箱形图旁边绘制垂直正态分布

来自分类Dev

来自未标记矩阵的R中的多个箱形图?

来自分类Dev

自定义素面图

来自分类Dev

自定义图例R图(晶格)

来自分类Dev

为什么自定义箱形图的功能不起作用?

来自分类Dev

循环内的自定义R Markdown图大小

来自分类Dev

R:ggplot箱形图

来自分类Dev

自定义多边形形状

来自分类Dev

安卓自定义箱线图

来自分类Dev

R中的圆环图自定义问题

来自分类Dev

使盒子(箱形图)在 r 中连续

来自分类Dev

如何保存自定义(仅保留下三角形)ggpairs 图?