scale_x_discrete manipulation ggtitle ggplot change r ggplot2

r - manipulation - ggtitle size



etiqueta de dos líneas ggplot2 con expresión (2)

Creo que esto es un error. (O una consecuencia del hecho de que "las expresiones de varias líneas no son compatibles", como se indica en la conversación a la que se ha vinculado).

La solución temporal a la que aludió Gavin Simpson es:

#For convenience redefine p as the unlabeled plot p <- ggplot(mtcars,aes(x=wt,y=mpg))+geom_point() #Use atop to fake a line break p + xlab(expression(atop("A long string of text for the purpose", paste("of illustrating my point" [reported]))))

Es posible usar saltos de línea verdaderos con subíndices. En el siguiente ejemplo, que tiene la misma forma que su ejemplo, el subíndice se coloca correctamente junto al resto del texto, pero las dos líneas de texto no están centradas correctamente:

p + xlab(expression(paste("line1 /n line2 a" [b])))

Creo que en ambos casos, el subíndice se coloca incorrecto cuando la línea superior del texto es más larga que la línea inferior del texto. Comparar

p + xlab(expression(paste("abc /n abcd" [reported])))

p + xlab(expression(paste("abc /n ab" [reported])))

El subíndice siempre termina alineado justo a la derecha del extremo derecho de la línea superior.

p + xlab(expression(paste("abcdefghijklmnop /n ab" [reported])))

Me gustaría escribir una etiqueta de eje sobre dos líneas con una declaración de expression() . Sin embargo, plotmath y expression no lo permitirán (por ejemplo, el texto con subíndice aparece en el extremo derecho). Encontré esta discusión alrededor de 2005 de un problema similar, pero el trabajo que ofrecen no se traduce a mi aplicación en ggplot2. Una pregunta reciente abordó una permutación diferente de declaraciones de expresión de varias líneas, pero una vez más el trabajo proporcionado no se aplica aquí.

Ejemplo:

p <- ggplot(mtcars,aes(x=wt,y=mpg))+ geom_point()+ xlab(expression(paste("A long string of text goes here just for the purpose /n of illustrating my point Weight "[reported]))) try(ggsave(plot=p,filename=<some file>,height=4,width=6))

produce una imagen donde se quita el subíndice "informado" a la derecha cuando me gustaría que se coloque junto a la palabra anterior.


Podrías usar este truco,

library(gridExtra) library(grid) element_custom <- function() { structure(list(), class = c("element_custom", "element_text")) } element_grob.element_custom <- function(element, label="", ...) { mytheme <- ttheme_minimal(core = list(fg_params = list(parse=TRUE, hjust=0, x=0.1))) disect <- strsplit(label, "//n")[[1]] tableGrob(as.matrix(disect), theme=mytheme) } # default method is unreliable heightDetails.gtable <- function(x) sum(x$heights) ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_line() + labs(x= "First~line /n italic(''and a second'') /n integral(f(x)*dx, a, b)")+ (theme_grey() %+replace% theme(axis.title.x = element_custom()))