如何从图表图例中删除 "a"?
How to have "a" removed from a ggraph plot legend?
可以从与例如相关联的图例中删除字母 "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
中是否有任何解决方案?
根据以上评论回答原问题:
根据@user20650 解决方案,必须在脚本顶部添加以下代码行。
library(grid)
GeomLabel$draw_key <- function (data, params, size) { draw_key_rect(data) }
如果在geom_node_label
中使用了repel = TRUE
参数,则除上述之外还需要添加GeomLabelRepel$draw_key <- GeomLabel$draw_key
。
可以从与例如相关联的图例中删除字母 "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
中是否有任何解决方案?
根据以上评论回答原问题: 根据@user20650 解决方案,必须在脚本顶部添加以下代码行。
library(grid)
GeomLabel$draw_key <- function (data, params, size) { draw_key_rect(data) }
如果在geom_node_label
中使用了repel = TRUE
参数,则除上述之外还需要添加GeomLabelRepel$draw_key <- GeomLabel$draw_key
。