【问题标题】:How to have "a" removed from a ggraph plot legend?如何从图表图例中删除“a”?
【发布时间】:2018-04-23 20:06:22
【问题描述】:

是否可以从与例如相关的图例中删除字母“a”? fill 或 colour 美学,在 ggraph 网络图中,如下面的简单示例所示?

library(igraph)
library(ggraph)

g1 <- make_ring(6)
vertex_attr(g1) <- list(name = LETTERS[1:6],  type =rep(c("typeA", "typeB", "typeC"), 2))

ggraph(g1) + geom_node_label(aes(label = name, fill = type)) + 
  geom_edge_diagonal() + theme_graph()

geom_text的情况,show.legend = FALSE解决了,

Remove 'a' from legend when using aesthetics and geom_text

但在geom_node_label() 中添加show.legend = FALSE 会完全删除图例。

ggraph 有解决方案吗?

【问题讨论】:

  • 将密钥更改为GeomLabel$draw_key &lt;- function (data, params, size) { grobTree(draw_key_rect(data)) } 并重绘。 similar
  • (ps 你需要library(grid))。其实你可以使用GeomLabel$draw_key &lt;- function (data, params, size) { draw_key_rect(data) }
  • 成功了,谢谢@user20650

标签: r ggplot2 ggraph


【解决方案1】:

根据上面的cmets回答原问题: 根据@user20650 解决方案,必须在脚本顶部添加以下代码行。

library(grid)
GeomLabel$draw_key <- function (data, params, size) { draw_key_rect(data) }

如果repel = TRUE参数在geom_node_label内部使用,那么除了上面的GeomLabelRepel$draw_key &lt;- GeomLabel$draw_key之外还需要添加。

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2020-04-08
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多