ggplot change r ggplot2 igraph

change - ggplot title center



¿Cómo trazar solo las leyendas en ggplot2? (3)

Cowplot a mano agrega una función para extraer la leyenda. Lo siguiente se toma directamente del manual.

library(ggplot2) library(cowplot) p1 <- ggplot(mtcars, aes(mpg, disp)) + geom_line() plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) + geom_point(size=2.5) # Note that these cannot be aligned vertically due to the legend in the plot.mpg ggdraw(plot_grid(p1, plot.mpg, ncol=1, align=''v'')) # now extract the legend legend <- get_legend(plot.mpg) # and replot suppressing the legend plot.mpg <- plot.mpg + theme(legend.position=''none'') # Now plots are aligned vertically with the legend to the right ggdraw(plot_grid(plot_grid(p1, plot.mpg, ncol=1, align=''v''), plot_grid(NULL, legend, ncol=1), rel_widths=c(1, 0.2)))

Actualmente estoy trabajando con igraph y tengo el color marcado en mis vértices. Me gustaría añadir una leyenda que indique qué representa cada color.

Lo que se me ocurre en este momento es usar ggplot2 para imprimir solo la leyenda y ocultar un gráfico de barras. ¿Hay una manera de simplemente mostrar la leyenda?


Estaba codificando por colores los vértices en el gráfico y quería generar una leyenda de la manera más simple, elegante y rápida posible.

Creo que la forma más rápida de hacerlo es generar la leyenda por separado usando ggplot2 antes de "pegar" la leyenda en la misma trama que igraph usando la viewport y el layout()

En este método no hay necesidad de llamar a los argumentos de rescale o asp en la función plot.igraph() .

Usando la función g_legend en un data.frame, leg , con 2 columnas, siendo x el atributo de vértice apropiado e y siendo el código de color hexadecimal usado en mi gráfico igraph, he hecho lo siguiente.

Mi objeto t8g es t8g

legend <- g_legend(leg) vpleg <- viewport(width = 0.1, height = 0.1, x=0.85,y=0.5) layout(matrix(c(1,2),1,2,byrow=T),widths=c(3,1)) plot(t8g,edge.width=1,edge.arrow.size=0.1,vertex.label.cex=0.2,main="b2_top10") pushViewport(vpleg) grid.draw(legend)


Robado descaradamente de: Insertar una tabla debajo de la leyenda en un histograma ggplot2

library(ggplot2) library(grid) library(gridExtra) my_hist <- ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar() # create inset table my_table <- tableGrob(head(diamonds)[, 1:3]) # extract Legend g_legend <- function(a.gplot){ tmp <- ggplot_gtable(ggplot_build(a.gplot)) leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box") legend <- tmp$grobs[[leg]] return(legend)} legend <- g_legend(my_hist) # or use cowplot package # legend <- cowplot::get_legend(my_hist) grid.newpage() grid.draw(legend)

Creado en 2018-05-31 por el paquete reprex (v0.2.0).