代码之家  ›  专栏  ›  技术社区  ›  firmo23

在ggpot的axis.text.x名称中添加多种颜色

  •  0
  • firmo23  · 技术社区  · 7 年前

    我有一个数据框架:

    gene_symbol<-c("DADA","SDAASD","SADDSD","SDADD","ASDAD","XCVXCVX","EQWESDA","DASDADS","SDASDASD","DADADASD","sdaadfd","DFSD","SADADDAD","SADDADADA","DADSADSASDWQ","SDADASDAD","ASD","DSADD")
    panel<-c("growth","growth","growth","growth","big","big","big","small","small","dfgh","DF","DF","DF","DF","DF","gh","DF","DF")
    ASDDA<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDb<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf1<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf2<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf3<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf4<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf5<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDA1<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDb1<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf1<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf11<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf21<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf31<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf41<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    ASDDAf51<-c("normal","over","low","over","normal","over","low","over","normal","over","DF","DF","DF","DF","DF","DF","DF","DF")
    Gene_states22<-data.frame(gene_symbol,panel,ASDDA,ASDDb,ASDDAf,ASDDAf1,ASDDAf2,ASDDAf3,ASDDAf4,ASDDAf5,ASDDA1,ASDDb1,ASDDAf1,ASDDAf11,ASDDAf21,ASDDAf31,ASDDAf41,ASDDAf51)
    

    我创造了一个热图:

    library(ggplot2); library(reshape2)
    HG3 <- split(Gene_states22, Gene_states22$panel)
    HG4 <- melt(HG3, id.vars= c("gene_symbol","panel"))
    HG4 <- HG4[,-5]
    HG4$gene_symbol = factor(HG4$gene_symbol, levels = unique(HG4$gene_symbol))
    
    pp <- ggplot(HG4, aes(gene_symbol,variable)) + 
      geom_tile(aes(fill = value),
                colour = "grey50") + 
      scale_fill_manual(values = c("white", "red", "blue", "black", "yellow", "green", "brown")) +
      labs(title = "Heatmap", x = "gene_symbol", y = "sample", fill = "value") +
      guides(fill = FALSE)+
      theme(panel.background = element_rect(fill = NA),
            panel.spacing = unit(0.5, "lines"), ## It was here where you had a 0 for distance between facets. I replaced it by 0.5 .
            strip.placement = "outside",
            axis.text.x = element_text(family = "Calibri", 
                                       size = 11,angle = 45, hjust = 1,color = "red"))
    
    
     ggplotly(pp)
    

    我想知道是否可以有多种颜色的 axis.text.x 名称而不是基于 panel 它们所属的类型或位置(例如前四个将是红色)。现在它们是红色的,但是我想要6种颜色,和 面板 类型。请注意,x.axis.name是根据 面板 它们属于。

    1 回复  |  直到 7 年前
        1
  •  4
  •   Thor6    7 年前

    我添加了 axis.text.x=element_text(family=“Calibri”,size=11,angle=45,hjust=1,color=as.factor(panel))) 。你需要这样的东西吗:

    pp<-ggplot(hg4,aes(gene_symbol,variable))。+
    地砖(aes(fill=value)
    colour=“grey50”)。+
    比例填充手册(值=C(“白色”、“红色”、“蓝色”、“黑色”、“黄色”、“绿色”、“棕色”))+
    实验室(title=“heatmap”,x=“gene_symbol”,y=“sample”,fill=“value”)。+
    参考线(填充=假)+
    主题(panel.background=element矩形(fill=na)
    panel.spacing=单位(0.5,“线”),在这里,面之间的距离为0。我换了0.5。
    strip.placement=“外部”,
    axis.text.x=元素_text(family=“Calibri”,
    尺寸=11,角度=45,hjust=1,颜色=as.系数(面板)))
    聚丙烯
    < /代码> 
    
    

    那就是:

    pp <- ggplot(HG4, aes(gene_symbol,variable)) + 
    geom_tile(aes(fill = value),
            colour = "grey50") + 
    scale_fill_manual(values = c("white", "red", "blue", "black", "yellow", "green", "brown")) +
    labs(title = "Heatmap", x = "gene_symbol", y = "sample", fill = "value") +
    guides(fill = FALSE)+
    theme(panel.background = element_rect(fill = NA),
        panel.spacing = unit(0.5, "lines"), ## It was here where you had a 0 for distance between facets. I replaced it by 0.5 .
        strip.placement = "outside",
        axis.text.x = element_text(family = "Calibri", 
                                   size = 11,angle = 45, hjust = 1,color = as.factor(panel)))
    pp
    

    enter image description here

    推荐文章