Can the letter "a" be removed from the legend associated with e.g. a fill
or colour
aesthetic, in a ggraph
network plot, like in the simple example below ?
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()
In the case of geom_text
, show.legend = FALSE
solves it,
Remove 'a' from legend when using aesthetics and geom_text
but adding show.legend = FALSE
within geom_node_label()
, removes the legend completely.
is there any solution for this in ggraph
?
Answer to the original question based on comments above: The following line of code has to be added on the top of the script as per @user20650 solution.
library(grid)
GeomLabel$draw_key <- function (data, params, size) { draw_key_rect(data) }
If repel = TRUE
argument is used inside geom_node_label
, then in addition to the above GeomLabelRepel$draw_key <- GeomLabel$draw_key
needs to be added.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With