我在两组中测量了大约1000个变量,每组有10个重复,换句话说,我有2个数据帧,每列有10列和1000行。
我想在两个不同的组中显示我的测量值的分布,以获取各组之间显着不同的变量。我最初的想法是做一个大的散点图,其中x坐标是变量的迭代,y坐标是测量,点可以是彩色编码的。它并没有像预期的那样工作,但是,我得到了一个散点图矩阵。
我试着用箱线图,
ratios1 <- as.data.frame(matrix(rnorm(10000) * 100, 1000, 10))
boxplot(t(log2(ratios1)), horizontal = T)
哪种方式有效但方框的所有线条都使得情节难以辨认,即使对于单个组也是如此(见下图)。然后我尝试删除这些框,然后将这些点添加为https://trigger.io/forge/toolkit/
boxplot(t(log2(ratios1)), horizontal = T, border = "white")
points(t(log2(ratios1)), pch=1)
但是那也没有用,因为我只得到了图上绘制的第一个变量。
如何显示此类信息?
答案 0 :(得分:0)
首先,列对应于观察的变量和行,而不是相反。
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")
您的数据中没有任何群组,因此我不知道该怎么做。也许你可以分组。但是,我不认为这种情节对于“选择不同群体之间存在显着差异的变量”的目标非常有用。我会做一个假设检验,对α误差通胀进行适当的修正。