【问题标题】:text labels are not showing on plot using geom_text_repel使用 geom_text_repel 的绘图上未显示文本标签
【发布时间】:2020-03-02 20:02:26
【问题描述】:

我正在使用这个来制作情节:

p = ggplot(y2, aes(logFC, -log10(adj.P.Val))) +
    geom_point(aes(col=sig))  +
    theme(
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.line =   element_line(colour = "black")
    ) +
    scale_color_manual(values=c("gray", "red")) + 
    ggtitle("Response to glucose No_DM, No_PDR and PDR") +
    xlab("log2FC")
p + geom_text_repel(
        data = filter(y2, adj.P.Val<qval.cutoff & abs(logFC) > FC.cutoff),
        aes(label = geneSymbol)
    ) + xlim(-0.3,0.3)
p

问题是没有显示红点上的文本标签。我应该补充一点,使用 geom_text() 会得到相同的结果,而不是红点上的文本标签。

我的数据如下所示:

head(y2)
                  ID geneSymbol                              geneName      logFC  AveExpr         t      P.Value    adj.P.Val         B
1 fSUyR.vR7Xu0iR4nUU      TXNIP       thioredoxin interacting protein  0.2234088 9.541793  8.415327 3.242297e-12 5.047609e-08 17.238861
2 33obrCQopAnZlAmA1Y  HIST1H2AC histone cluster 1 H2A family member c  0.1557544 8.294461     6.818566 2.720443e-09 2.117593e-05 10.960907
3 B.MnES5zlIlJgt51ZU  HIST1H2BJ histone cluster 1 H2B family member j  0.1642828 7.674182  6.495074 1.043064e-08 5.412808e-05  9.704442
4 Ebfrl.7uOZfnjp_E7k       EGR1               early growth response 1 -0.1641590 9.285850 -6.354245 1.864866e-08 6.262890e-05  9.161173
5 iSYLWdWZUIKnYICW4c  HIST1H2BK histone cluster 1 H2B family member k  0.1613979 9.914578  6.278442 2.546608e-08 6.262890e-05  8.869853
6 oB.usjxziFJJd51SUk     CCL4L1   C-C motif chemokine ligand 4 like 1 -0.1720790 9.926583 -6.254667 2.807540e-08 6.262890e-05  8.778649
       sig
1 pval.cutoff
2     Not Sig
3     Not Sig
4     Not Sig
5     Not Sig
6 pval.cutoff


sapply(y2,class)
         ID  geneSymbol    geneName       logFC     AveExpr           t     P.Value   adj.P.Val           B         sig 
"character" "character" "character"   "numeric"   "numeric"   "numeric"   "numeric"   "numeric"   "numeric" "character" 

【问题讨论】:

    标签: r ggplot2 ggrepel


    【解决方案1】:

    (:您对p 的最后一次调用显示了没有添加标签的基本图。尝试

    p <- p + geom_text_repel(
            data = filter(y2, adj.P.Val<qval.cutoff & abs(logFC) > FC.cutoff),
            aes(label = geneSymbol)
        ) + xlim(-0.3,0.3)
    p
    

    应该向您展示情节并为我工作。代码:

    df <- tibble(
      geneSymbol = c("TXNIP", "HIST1H2AC", "HIST1H2BJ"),
      logFC = c(0.2234088, 0.1557544, 0.1642828),
      adj.P.Val = c(5.047609e-08, 2.117593e-05, 5.412808e-05),
      sig = c("pval.cutoff", "Not Sig", "Not Sig")
    )
    
    p <- ggplot(df, aes(logFC, -log10(adj.P.Val))) +
      geom_point(aes(col=sig))  +
      scale_color_manual(values = c("gray", "red")) + 
      ggtitle("Response to glucose No_DM, No_PDR and PDR") +
      xlab("log2FC")
    
    p <- p + ggrepel::geom_text_repel(
      data = filter(df, sig == "pval.cutoff"), aes(label = geneSymbol))
    
    p
    

    【讨论】:

    • 非常感谢,我认为 ggrepel::geom_text_repel 有所作为。这可能是我的 dplyr 版本
    • 嗨安娜玛丽亚。我的荣幸。但。不,ggrepel::geom_text_repel 没有区别。添加标签后,您只是忘记将绘图重新分配给p
    【解决方案2】:
    1. 您是否检查过geom_text_repel 中使用的数据,即data = filter(y2, adj.P.Val&lt;qval.cutoff &amp; abs(logFC) &gt; FC.cutoff),是一个非空的data.frame?

    2. 由于sig 映射到颜色美学,为什么不简单地过滤sig 中的值,即filter(y2, sig == "pval.cutoff")

    【讨论】:

    • 嗨,我确实检查了 data = filter(y2, adj.P.Val FC.cutoff) 并且它不是空的 data.frame。使用 filter(y2, sig == "pval.cutoff") 对我的问题没有帮助,它给了我同样的情节,没有红点上的标签。
    猜你喜欢
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    相关资源
    最近更新 更多