子组的密度图

时间:2012-03-22 10:08:39

标签: r

抱歉打扰你。我有一个大数据框,如下所示:

  

GeneSymbol Sample1 Sample2 Sample3 Sample4

 A         value1  value2  value3  value4
 A         value12 value22 value32 value42
 B          ecc      ecc
 B
 B
 B
 C
 C
 C

我想按组和行(行)绘制密度函数。例如: 对于A组,两个密度图因为有两个元素属于A组; 对于B组,4个密度图,因为有4个元素属于B组,ecc。 有没有简单的方法呢?

非常感谢你的帮助!

爱莲

1 个答案:

答案 0 :(得分:0)

您可以使用dplyrggplot2软件包的组合来绘制案例的密度图。

首先,您要排列基因符号并编号。将数据框从宽格式转换为窄格式后,因此样本编号将在单独的列中。对于该操作,您正在使用gather函数。

要进行绘制,可以使用ggplot和密度几何,然后将数据绘制为2D数组(3x3)。

请参见下面的仿真,数据准备和绘图代码。

# Simulation
# Data frame: 3 Gene symbols and 100 Variables
set.seed(123)
m <- matrix(rnorm(9 * 100), nrow = 9)
df <- data.frame(
  sample(LETTERS[1:3], 9, replace = TRUE),
  m
)
names(df) <- c("GeneSymbol", paste0("Sample", 1:100))

# Plotting
library(ggplot2)
library(dplyr)
library(tidyr)

df <- df %>% 
  arrange(GeneSymbol) %>%  
  mutate(GeneSymbol = paste0(GeneSymbol, 1:n())) %>%
  gather(sampl_no, value, - GeneSymbol)

ggplot(df, aes(value)) +
  geom_density() +
  ggplot2::facet_wrap(~GeneSymbol, ncol = 3)

输出:

enter image description here