美文网首页
R语言 ggplot2 指定箱线图中 box 的位置

R语言 ggplot2 指定箱线图中 box 的位置

作者: 风知秋 | 来源:发表于2024-01-07 19:59 被阅读0次

有时候,想要指定箱线图中 box 的位置,以及不同 box 之间的间隙,早些时候,我的思路是画分组箱线图,详见我之前发的简书:

R语言 ggplot2 分组箱线图不同变量指定不同颜色

但是,现在来看,仍然不够自由,想要找一种无拘束的方式,直接指定每个 box 的横坐标位置,比如给定一组向量 c (1, 2, 4, 5) 这种,来指定每个 box 所在的位置。

发现,可以给 box 指定一个 position 参数,见示例:

# 示例数据集

data <- data.frame(

  Group = rep(c("A", "B", "C", "D"), each = 3),

  Value = c(4, 7, 6, 2, 9, 8, 5, 3, 7, 1, 6, 4)

)

# 绘图

ggplot(data, aes(x = as.numeric(factor(Group)), y = Value, fill = Group)) +

        geom_boxplot(position = position_nudge(x = c(1, 2, 4, 5)), width = 0.7)

将横坐标设定为数值变量后,可以直接通过 position = position_nudge(x = c(1, 2, 4, 5)) 调整每一个 box 的位置,比如想要前两个和后两个之间拉开一定距离。

但是横坐标会相应地发生变化,不是原来的 A B C D 了,但是也没关系,再加一行:

ggplot(data, aes(x = as.numeric(factor(Group)), y = Value, fill = Group)) +

        geom_boxplot(position = position_nudge(x = box_positions), width = 0.7) +

        scale_x_continuous(breaks = c(2, 4, 7, 9), labels = c("A", "B", "C", "D"))

指定顺序、颜色之类,我之前有详细地说过,有兴趣可以看看我的这个文集:R 语言绘图,主要包括绘图过程中一些细微处的调整。

只要能想象得到,咱就要能画出来。欢迎评论交流!

相关文章

网友评论

      本文标题:R语言 ggplot2 指定箱线图中 box 的位置

      本文链接:https://www.haomeiwen.com/subject/lctnndtx.html