如何添加 4 个组以制作具有均值线段的分类散点图?

Sob*_*Naz 2 r ggplot2

我想为 R studio 中的数据集制作这种图表(图表图片参考:post,使用 R 中的 ggplot2 进行平均分段的分类散点图),但是我不知道如何添加我的组,这更重要比一,到 x 轴并在 Y 轴上缩放。

\n\n

这是我的数据,在 Windows PC 中保存为 cvs 文件:

\n\n
GROUP A \n22.51506233\n21.86862564\n21.20981979\n21.44734764\n21.45001411\n19.99370003\nGROUP B\n18.95846367\n20.99542427\n20.96941566\n21.49574852\n21.18944359\n21.88916016\n19.47029114\n19.50328064\nGROUP C\n20.76145554\n19.29909134\n21.62098885\n26.1908226\n21.95579529\n20.79806519\n24.57015228\n22.81287003\n21.68307304\nGROUP D\n20.89354706\n20.52819443\n22.62171173\n21.20273018\n20.35452652\n20.89900398\n21.66306114\n19.66979218\n19.77578926\n19.31722832\n21.89787102\n20.92485237\n20.60872269\n19.97720909\n21.31039047\n21.76075363\n22.42200661\n22.59609222\n21.5938015\n22.24318123\n22.26913261\n21.67864227\n18.97455406\n21.47759438\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下是所需的详细信息:

\n\n

我没有\xe2\x80\x99t尝试过图形代码,我只是看视频来学习R,但不幸的是我没有\xe2\x80\x99t获得正确的代码来制作这样的图形。图表的链接是\n使用 R 中的 ggplot2 绘制平均段的分类散点图

\n\n

我的数据在 Excel 中,我将其保存为 CVS 格式,然后导入到 Rstudio 中。它在我的 R 窗口中存储为 BCL6.DATAcvs 。我读的文件如下,每组一列,有 4 组,每组有不同数量的值,例如 A 有 6 个值,B 有 8 个值,C 有 9 个值,D 有 24 个值。

\n\n
summary(BCL6.DATAcvs)\n       A               B               C               D        \n Min.   :19.99   Min.   :18.96   Min.   :19.30   Min.   :18.97  \n 1st Qu.:21.27   1st Qu.:19.50   1st Qu.:20.80   1st Qu.:20.48  \n Median :21.45   Median :20.98   Median :21.68   Median :21.26  \n Mean   :21.41   Mean   :20.56   Mean   :22.19   Mean   :21.11  \n 3rd Qu.:21.76   3rd Qu.:21.27   3rd Qu.:22.81   3rd Qu.:21.80  \n Max.   :22.52   Max.   :21.89   Max.   :26.19   Max.   :22.62  \n NA\'s   :18      NA\'s   :16      NA\'s   :15\n
Run Code Online (Sandbox Code Playgroud)\n\n

请指导我如何制作这个图表。

\n

Jaa*_*aap 5

假设您有一group列和一value列,让我们首先重建您的数据:

A <- data.frame(group="A", value=c(22.51506233,21.86862564,21.20981979,21.44734764,21.45001411,19.99370003))
B <- data.frame(group="B", value=c(18.95846367,20.99542427,20.96941566,21.49574852,21.18944359,21.88916016,19.47029114,19.50328064))
C <- data.frame(group="C", value=c(20.76145554,19.29909134,21.62098885,26.1908226,21.95579529,20.79806519,24.57015228,22.81287003,21.68307304))
D <- data.frame(group="D", value=c(20.89354706,20.52819443,22.62171173,21.20273018,20.35452652,20.89900398,21.66306114,19.66979218,19.77578926,19.31722832,21.89787102,20.92485237,20.60872269,19.97720909,21.31039047,21.76075363,22.42200661,22.59609222,21.5938015,22.24318123,22.26913261,21.67864227,18.97455406,21.47759438))
df <- rbind(A,B,C,D)
Run Code Online (Sandbox Code Playgroud)

现在您可以使用以下命令制作分组散点图:

library(ggplot2)
ggplot(df, aes(x=group, y=value, color=group)) +
  geom_point(size=4, alpha=0.7, position=position_jitter(w=0.1, h=0)) +
  stat_summary(fun.y=mean, geom="point", shape=23, color="black", aes(fill=group), size=4) +         
  stat_summary(fun.ymin=function(x)(mean(x)-sd(x)), 
               fun.ymax=function(x)(mean(x)+sd(x)),
               geom="errorbar", width=0.1) +
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

使用参数的解释:

alpha=0.7结合使用position=position_jitter(w=0.1, h=0)以区分各点。设置alpha透明度,其值介于0(完全透明)和1(不透明)之间。

position_jitter可以稍微更改点的位置。这是在精确点的某些边界内随机完成的。这样做的原因是有些点是重叠的。通过使用,position=position_jitter()您可以使重叠点更加明显。边界由wh参数设置。通过设置,h=0position_jitter可以确保位置变化仅在水平方向发生,垂直位置与实际值完全相同。为了查看效果,请运行不包含该position=position_jitter(w=0.1, h=0)部分的代码并将其与上图进行比较。

theme_bw()绘图的布局设置为黑/白布局,而不是使用灰色背景。

有关以下几个部分的更多信息:geom_pointstat_summary和。有关点形状的更多信息,只需在控制台中键入即可。geom_errorbartheme()?pch