R 使用ggplot2将两个基因计数合并到一个图中?
在同一图表中沿两种不同条件显示两个基因计数。使用plotcounts函数从Deseq2获得这些基因的标准化计数。以相同的x轴在同一个图中绘制这两个基因,x轴有三个条件Ctrl、T1、T2和不同的y轴(基于计数)。另外一个变量是复制体PAT1,2,3,4,5,我想用不同的形状和两种不同颜色的基因“x”和“y”来区分它。我从上面提到的链接中尝试了类似的方法,但到目前为止还没有真正起作用R 使用ggplot2将两个基因计数合并到一个图中?,r,plot,ggplot2,R,Plot,Ggplot2,在同一图表中沿两种不同条件显示两个基因计数。使用plotcounts函数从Deseq2获得这些基因的标准化计数。以相同的x轴在同一个图中绘制这两个基因,x轴有三个条件Ctrl、T1、T2和不同的y轴(基于计数)。另外一个变量是复制体PAT1,2,3,4,5,我想用不同的形状和两种不同颜色的基因“x”和“y”来区分它。我从上面提到的链接中尝试了类似的方法,但到目前为止还没有真正起作用 geneX 到目前为止,我使用这段代码生成单独的GGPlot #ggplot(genecounts, aes(x
geneX 到目前为止,我使用这段代码生成单独的GGPlot
#ggplot(genecounts, aes(x = timepoint, y = count, color = patient)) + geom_beeswarm(cex =3)
任何帮助/建议都将不胜感激第一步是在每个数据框中添加一列基因名称,然后将它们组合起来 你可以从
geom_point
开始:我会对患者使用颜色,对基因使用形状。您将需要使用对数刻度,因为计数的数量级不同。假设您的数据帧命名为geneX
和geneY
:
library(dplyr)
library(ggplot2)
geneX %>%
mutate(gene = "X") %>%
bind_rows(mutate(geneY, gene = "Y")) %>%
ggplot(aes(timepoint, count)) +
geom_point(aes(color = patient, shape = gene)) +
scale_y_log10()
您可以尝试geom jitter
来避免点重叠
如果你想连接这些点,你需要根据基因和患者进行分组,这需要更多的工作:
geneX %>%
mutate(gene = "X") %>%
bind_rows(mutate(geneY, gene = "Y")) %>%
ggplot(aes(timepoint, count)) +
geom_line(aes(color = patient, group = interaction(patient, gene))) +
geom_point(aes(color = patient, shape = gene)) +
scale_y_log10()
我没有在您的示例数据中看到基因“x”和“y”?我已经用这两个基因的数据更新了问题
library(dplyr)
library(ggplot2)
geneX %>%
mutate(gene = "X") %>%
bind_rows(mutate(geneY, gene = "Y")) %>%
ggplot(aes(timepoint, count)) +
geom_point(aes(color = patient, shape = gene)) +
scale_y_log10()
geneX %>%
mutate(gene = "X") %>%
bind_rows(mutate(geneY, gene = "Y")) %>%
ggplot(aes(timepoint, count)) +
geom_line(aes(color = patient, group = interaction(patient, gene))) +
geom_point(aes(color = patient, shape = gene)) +
scale_y_log10()