• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言里一些画图程序不能在循环里正常保存的解决办法 - 若流芳千古 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

R语言里一些画图程序不能在循环里正常保存的解决办法

R语言里一些画图程序不能在循环里正常保存的解决办法

 
这个目前只知其然不知其所以然,但是解决问题是可以的。
Seurat里的DimPlot画图,单独使用的时候没有问题,用pdf+dev.off()可以正常输出保存图片,但是放在循环里却无法实现,原因不明。
但是解决办法也很简单,加一个print函数就可以了。示例代码如下:
pdf("abc.pdf")
p1<-DimPlot(mouse.data)
print(p1)
dev.off()
 
保存图片同样
 
for( i in 1:length(allPathwayName)){
  this_pw <- allPathwayName[i]
  if(!(paste0(this_pw,\'out.csv\')%in%pwlist)){
    next
  }
  score <- read.csv(file = paste0(merge_savePath,this_pw,"out.csv"))
  score <- score[,2:5]
  colnames(score)[4] = this_pw
  expr_all_manifast_ <- merge(expr_all_manifast,score,by.x = "barcodes",by.y = "barcodes")
  
  png(filename=paste0(merge_savePath,this_pw,"_hist.png"), width=1200, height=900)
  p1 <- hist(expr_all_manifast_[,10],xlab = this_pw,main = paste0(this_pw,\' score\'))
  print(p1)
  dev.off()
  # create a dataset
  expr_all_manifast_$idents_res0.6 <- as.character(expr_all_manifast_$idents_res0.6)
  data <- expr_all_manifast_[which(expr_all_manifast_$idents_res0.6%in%c(\'7\',\'8\',\'9\',\'16\')),]
  #
  
  sample_lable <- paste0(data$source,\'.\',data$idents_res0.6)
  data <- cbind(data,sample_lable)
  
  day <- data$source
  for( i in 1:length(day)){
    if(day[i]%in%c(\'D0N\',\'D0P\')) day[i] = \'D0\'
    if(day[i]%in%c(\'D2N\',\'D2P\')) day[i] = \'D2\'
    if(day[i]%in%c(\'D4N\',\'D4P\')) day[i] = \'D4\'
    if(day[i]%in%c(\'D7N\',\'D7P\')) day[i] = \'D7\'
  }
  
  # sample size
  data <- cbind(data,day)
  day_lable <- paste0(data$day,\'.\',data$idents_res0.6)
  data <- cbind(data,day_lable)
  
  data <- data[-which((data$sample_lable%in%c("D0P.16","D2P.7","D7N.9","D7P.8","D7P.9","D2N.16","D2N.7"))),]
  sample_size = data %>% group_by(sample_lable) %>% summarize(num=n())
  
  fill_color <- data$source
  for(i in 1:length(fill_color)){
    if(fill_color[i]%in%c("D0N","D2N","D4N","D7N")) fill_color[i] = \'red\'
    else fill_color[i] = \'blue\'
  }
  jpeg(filename=paste0(merge_savePath,this_pw,"_samlable.png"), width=1500, height=500)
  
  p1 <- data %>%
    left_join(sample_size) %>%
    mutate(myaxis = paste0(sample_lable, "\n", "n=", num)) %>%
    ggplot( aes(x=myaxis, y=data[,9], fill=fill_color)) +
    geom_violin(width=1.4) +
    geom_boxplot(width=0.1, color="grey", alpha=0.2) +
    scale_fill_viridis(discrete = TRUE) +
    theme_ipsum() +
    theme(
      legend.position="none",
      plot.title = element_text(size=11)
    ) +
    ggtitle(this_pw) +
    xlab("")+
    ylab("")
  print(p1)
  dev.off()
    
  sample_size <- data %>% group_by(day_lable) %>% summarize(num=n())
  jpeg(filename=paste0(merge_savePath,this_pw,"_daylable.png"), width=1000, height=500)
  
  p1 <- data %>%
    left_join(sample_size) %>%
    mutate(myaxis = paste0(day_lable, "\n", "n=", num)) %>%
    ggplot( aes(x=myaxis, y=data[,9], fill=day)) +
    geom_violin(width=1.4) +
    geom_boxplot(width=0.1, color="grey", alpha=0.2) +
    scale_fill_viridis(discrete = TRUE) +
    theme_ipsum() +
    theme(
      legend.position="none",
      plot.title = element_text(size=11)
    ) +
    ggtitle("Propagation score") +
    xlab("")+
    ylab("")
  print(p1)
  dev.off()
    
  
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap