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。 有没有简单的方法呢?
非常感谢你的帮助!
爱莲
答案 0 :(得分:0)
您可以使用dplyr
和ggplot2
软件包的组合来绘制案例的密度图。
首先,您要排列基因符号并编号。将数据框从宽格式转换为窄格式后,因此样本编号将在单独的列中。对于该操作,您正在使用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)
输出: