【问题标题】:Plotting distribution of multiple measurements in two different groups in R在 R 中绘制两个不同组中的多个测量值的分布
【发布时间】:2015-07-06 09:59:22
【问题描述】:

我在 2 组中测量了大约 1000 个变量,每组有 10 个重复,换句话说,我有 2 个数据框,每个数据框有 10 列和 1000 行。

我想在两个不同的组中显示我的测量值的分布,以找出组之间显着不同的变量。我最初的想法是做一个大散点图,其中 x 坐标是变量的迭代,y 坐标是测量值,点可以用颜色编码。它并没有按预期工作,但是,我得到了一个散点图矩阵。

我尝试使用箱线图,

ratios1 <- as.data.frame(matrix(rnorm(10000) * 100, 1000, 10))
boxplot(t(log2(ratios1)), horizontal = T)

哪种方法有效,但方框的所有线条使情节难以辨认,即使对于单个组也是如此(见下图)。然后我尝试删除框并将点添加为suggested here

boxplot(t(log2(ratios1)), horizontal = T, border = "white")
points(t(log2(ratios1)), pch=1) 

但这也不太奏效,因为我只在图表上绘制了第一个变量。

如何显示此类信息?

【问题讨论】:

    标签: r plot distribution


    【解决方案1】:

    首先,列对应变量,行对应观察,而不是相反。

    set.seed(42)
    ratios1 <- as.data.frame(matrix(rnorm(10000) * 100, 10, 1000))
    

    您可以像这样绘制分位数:

    library(reshape2)
    ratios2 <- melt(ratios1)
    library(ggplot2)
    ggplot(ratios2, aes(x = as.numeric(variable), y = value)) +
      stat_summary(fun.data = function(y) as.data.frame(setNames(as.list(quantile(y, probs = c(0.025, 0.5, 0.975))), c("ymin", "y", "ymax"))), 
                   color = "blue") +
      stat_summary(fun.data = function(y) as.data.frame(setNames(as.list(quantile(y, probs = c(0.25, 0.5, 0.75))), c("ymin", "y", "ymax"))), 
                   color = "red") +
      xlab("variable")
    

    您的数据中没有组,所以我不知道该怎么处理。也许你可以按组分面。但是,我认为这种情节对于您“挑选[ing]组之间显着不同的变量”的目标不会很有用。我会做一个假设检验,对 alpha 误差膨胀进行适当的修正。

    【讨论】:

      猜你喜欢
      • 2021-02-23
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多