1

我有一个看起来像这样的大数据框:

GeneSymbol   Sample1     Sample2    Sample3    Sample4

 A           value11     value12    value13    value14
 A           value21     value22    value23    value24
 B           etc.        etc.
 B
 B
 B
 C
 C
 C

我想按组和线(行)绘制密度函数。例如:对于 A 组,有两个密度图,因为有两个元素属于 A 组;对于 B 组,4 个密度图,因为有 4 个元素属于 B 组,依此类推。

4

1 回答 1

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)

输出:

在此处输入图像描述

于 2019-12-25T14:27:45.490 回答