R

R ggplot2: es talla la llegenda a la part inferior, com es pot trobar el nombre òptim de columnes per a la llegenda sobre la marxa?

R Ggplot2 Legend Bottom Gets Cut



Solució:

Això va funcionar:

  • reduir la mida del tipus de lletra (width_scale en lloc de width_scale * 1,5)
  • afegiu un quadre al voltant de la llegenda
ggplot2 :: ggplot (mydf, ggplot2 :: aes (group, value, fill = var)) + ggplot2 :: geom_bar (stat = 'identitat') + ggplot2 :: scale_y_continuous ('%') + ggplot2 :: theme_light () + ggplot2 :: theme (legend.text = ggplot2 :: element_text (size = width_scale), legend.box.margin = margin (6, 6, 6, 6), legend.title = ggplot2 :: element_text (size = 1,5 * width_scale, face = 'bold'), legend.position = 'bottom', legend.key.size = grid :: unit (width_scale / 50, 'inch'), legend.key.width = grid :: unit (width_scale / 50, 'polzades'))

Veure resultat

Podeu ajustar width_scale segons el nombre d'elements de la llegenda:



és<- data.frame(group=paste0('gr',1:10), var=paste('some long text -', 1:50), value=runif(500, 0, 100)) width_scale <- 12 * 26 / length(unique(mydf$var))  

ajust d




Es podria ajustarcanvieu manualment la mida de la mida fins que els gràfics coincideixin amb els vostres requisits?

print (#or ggsave () ggplot2 :: ggplot (mydf, ggplot2 :: aes (group, value, fill = var)) + ggplot2 :: geom_bar (stat = 'identity') + ggplot2 :: scale_y_continuous ('%') + ggplot2 :: theme_light () + ggplot2 :: theme (legend.text = ggplot2 :: element_text (size = 14), legend.position = 'bottom'), legend.title = ggplot2 :: element_text (size = 1,5 * width_scale , face = 'bold'), legend.key.size = grid :: unit (width_scale / 50, 'inch'), legend.key.width = grid :: unit (width_scale / 50, 'inch')))

introduïu la descripció de la imatge aquí