微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ggplot2的每个方面覆盖相同的线图

如何解决在ggplot2的每个方面覆盖相同的线图

我需要在所有方面覆盖相同的 'target_gene' 图。如果我在 1 个面板中绘制所有内容,我可以轻松覆盖它。但是,当我将此操作与 facet_wrap 结合使用时,'target_gene' 被绘制在一个单独的方面,而不是覆盖在其他图上。请参阅下面的脚本。 'select_genes_plot' 有效(参见 same panel plots),但 'select_genes_plot_facet' 不起作用(参见 plot in facets)。

请注意,我不能使用 +annotate(geom='point',x=target_gene$gene_exp.Time,y=target_gene$gene_exp.Value),因为我也想绘制 sd 误差线。

transcriptome_reshape 和target_gene 数据如下所示,请参见transcriptome data exampletarget gene data)

library(ggplot2)
library(dplyr)
library(reshape2)

##1. Read transcriptome dataset
setwd('./')
transcriptome_data <- read.csv ('./Kaladp_expression_FPKM_average_sd.csv',header = TRUE)
reshape_data <- melt(transcriptome_data)  #the function melt reshapes it from wide to long
average_geneexpression <- reshape_data[1:(743136/2),]
sd_geneexpression <- reshape_data[((743136/2)+1):743136,]
transcriptome_reshape <- cbind(average_geneexpression,sd_geneexpression)

colnames(transcriptome_reshape)[2]<- 'gene_exp.Time'
colnames(transcriptome_reshape)[3]<- 'gene_exp.Value'
colnames(transcriptome_reshape)[4]<- 'transcript_sd_data'
colnames(transcriptome_reshape)[5]<- 'sd.Time'
colnames(transcriptome_reshape)[6]<- 'sd.Value'

##2. Select ONE key target gene 
target_gene <- transcriptome_reshape %>%
  filter (Transcript %in% c('Kaladp0977s0008.1')) 

##3.Plot options

##plot whole genome
ggplot(data = transcriptome_reshape,aes(x = gene_exp.Time,y = gene_exp.Value,group = Transcript)) +
  geom_line()

##plot target gene alone
ggplot(target_gene,group = 1)) +
  geom_line()+
  geom_point()

##plot all genes on same panel
select_genes_plot <- transcriptome_reshape %>%
  filter (Transcript %in% c('Kaladp0498s0001.1','Kaladp0011s0858.1','Kaladp0071s0450.1')) %>%
  ggplot(mapping = aes(x = gene_exp.Time,color = Transcript)) +
  geom_line(aes(group=Transcript))+
  geom_point()+
  geom_errorbar(aes(ymin = gene_exp.Value-sd.Value,ymax = gene_exp.Value+sd.Value),width = 0.2,position = position_dodge(0.0))+
  geom_point(data = target_gene,y = gene_exp.Value),color = 'black',shape = 17)+ #this line plots target gene
  geom_line(data = target_gene,group=Transcript),color = 'black')+ #this line plots target gene
  geom_errorbar(data = target_gene,aes(ymin = gene_exp.Value-sd.Value,position = position_dodge(0.0))#this line plots target gene
  
select_genes_plot

##plot in facets
select_genes_plot_facets <- transcriptome_reshape %>%
  filter (Transcript %in% c('Kaladp0498s0001.1',position = position_dodge(0.0))+
  facet_wrap(facets = vars(Transcript),ncol = 3)+
  geom_point(data = target_gene,group = 1),color = 'black')+ #this line plots target gene
  
select_genes_plot_facets

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。