使用ggplotly()后,轴和标题的字体和大小似乎已停用

时间:2018-06-24 02:39:21

标签: r ggplot2 plotly

我有这个数据框

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)

然后我用gplot2创建这些热图

    library(plotly)
library(ggplot2); library(reshape2)
HG3<-split(Gene_states22[,1:15], Gene_states22$panel)
HG4 <- melt(HG3, id.vars= c("gene_symbol","panel"))
HG4<-HG4[,-5]
HG5<-split(HG4, HG4$panel)
pp <- ggplot(HG4, 
       aes(gene_symbol,variable)) + 
  geom_tile(aes(fill = value),
            colour = "grey50") + 
  facet_grid(~panel, scales = "free") +

  # it looks like you have more colours than values here.
  # I recommend using a named vector in this case, so that 
  # the same value always maps to the same colour.
  # e.g. values = c("DF" = "white", "low" = "red", ...)
  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, "lines"),
        strip.placement = "outside")

然后我将它们转换为密谋

ggplotly(pp,
         width = 1350, height = 600) %>%
  # note: specifying width / height in layout() has been deprecated
  # in recent versions of plotly. when I used it that way, I got
  # a warning to specify it within ggplotly() instead.
  layout(autosize = F,  yaxis = list(title = "sample",family = "Calibri", 
                                    size = 11),
         hoverlabel = list(bgcolor = "white",
                           font = list(family = "sans serif", size = 9, color = "black"))) 

问题是我的标题和轴标题的字体,大小和粗体似乎没有被吸引并且无法正常工作。另外,标题“ Heatmap”应该高一些,并且不会卡在图中。

1 个答案:

答案 0 :(得分:1)

我认为是。您可以删除标题并使用注释将图例放置在正确的位置。您可以根据需要调整字体大小和位置。

那呢?

ggplotly(pp, width = 1350, height = 598) %>%
    add_annotations(
        yref="paper", 
        xref="paper", 
        y=1.09, 
        x=0, 
        text="Heatmap", 
        showarrow=F, 
        font=list(size=18)
    ) %>% 
    layout(title=FALSE)

enter image description here