使用相同的标签和颜色为不同的图形手动斜体和着色图例

Posted

技术标签:

【中文标题】使用相同的标签和颜色为不同的图形手动斜体和着色图例【英文标题】:Italicize and color legend manually for different graphs using same labels and colors 【发布时间】:2019-08-10 15:24:49 【问题描述】:

我正在尝试创建多个共享相同图例的图表。 我找到了许多组合多个图表的方法,似乎ggarrange 能够为所有应该是唯一的东西创建一个共享图例。 但是我在绘图时遇到了一些问题,因为一些图表没有相同的门(定义图例颜色)存在,但我希望它们在所有图表中都是相同的颜色,所以组合图例将有正确的颜色。 对于一个图表,我会手动为标签分配颜色,如下所示

labs<-c("Arthropoda"="#FF66CC"
        ,"Cercozoa"="#FF6000")

并添加scale_fill_manual(values=labs) 进行绘图,这似乎有效

然后我对其进行了修改,因此我可以将其中的一部分用斜体显示。

labsPhylum <-c('expression(paste(italic("Arthropoda")))'="#CC0000"
              ,'expression(paste(italic("Cercozoa")))'= "#FF6000"
             ,'expression (paste("unknown", ~italic("Eukaryota")))'= "#990000")`

但是,当我使用 ggplotscale_color_manual() 使用我认为应该斜体和彩色的 labsPhylum 创建一个绘图时,我绘制了一个带有此警告的空图,所以这里有一些我不理解的重要内容。

ggplot(data=sigtab_dil, aes(x=Species, y=log2FoldChange, color=Phylum))+ 
  geom_point(size=2) + 
  scale_color_manual(values=labsPhylum)

    Warning message:
    Removed 9 rows containing missing values (geom_point). 

有人可以帮我弄清楚我哪里出错了吗? 谢谢

【问题讨论】:

【参考方案1】:

回答了我自己的问题

我意识到我必须为中断、标签和值创建单独的向量,而不是组合它们。

总之

colsPhylum <-c("Arthropoda"="#CC0000"
              ,"Cercozoa"= "#FF6000"
              ,"Chlorophyta"= "#CC9900"

labsPhylum <-c(expression(paste(italic("Arthropoda")))
               ,expression(paste(italic("Cercozoa")))
               ,expression(paste(italic("Chlorophyta ")))

breaksPhylum <-c("Arthropoda", "Cercozoa","Chlorophyta", "Choanozoa"
               ,"Ciliophora"
               ,"Cryptista"

【讨论】:

以上是关于使用相同的标签和颜色为不同的图形手动斜体和着色图例的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将颜色点链接到具有不同图例的字典?

AttributeError:'NoneType'对象没有属性'legendHandles',而在自定义图例中为每个标签手动分配颜色时

三维封闭曲线着色,在图中插入子图,指定显示的图例。

基于轴颜色的ggplot图例

Matplotlib 可视化之图例与标签高级应用

使用 Rcy3 根据节点颜色向图形添加图例