me gustaría proporcionar una solución alternativa, una Se requirió una solución robusta similar a lo que voy a proponer en la última versión de ggtern, desde que introdujimos la función de rotación de lienzo.
Básicamente, necesita determinar las posiciones relativas mediante trigonometría, construyendo una función que devuelve un objeto element_text
, un ángulo determinado (es decir, grados) y la posición (es decir, uno de x, y, arriba o derecha) información.
#Load Required Libraries
library(ggplot2)
library(gridExtra)
#Build Function to Return Element Text Object
rotatedAxisElementText = function(angle,position='x'){
angle = angle[1];
position = position[1]
positions = list(x=0,y=90,top=180,right=270)
if(!position %in% names(positions))
stop(sprintf("'position' must be one of [%s]",paste(names(positions),collapse=", ")),call.=FALSE)
if(!is.numeric(angle))
stop("'angle' must be numeric",call.=FALSE)
rads = (angle - positions[[ position ]])*pi/180
hjust = 0.5*(1 - sin(rads))
vjust = 0.5*(1 + cos(rads))
element_text(angle=angle,vjust=vjust,hjust=hjust)
}
Francamente, en mi opinión, creo que una opción 'auto' debe estar disponible en ggplot2
para los hjust
vjust
y argumentos, al especificar el ángulo, de todos modos, vamos a demostrar cómo las obras anteriores.
#Demonstrate Usage for a Variety of Rotations
df = data.frame(x=0.5,y=0.5)
plots = lapply(seq(0,90,length.out=4),function(a){
ggplot(df,aes(x,y)) +
geom_point() +
theme(axis.text.x = rotatedAxisElementText(a,'x'),
axis.text.y = rotatedAxisElementText(a,'y')) +
labs(title = sprintf("Rotated %s",a))
})
grid.arrange(grobs=plots)
que produce lo siguiente:

En la versión más reciente de ggplot2 el comando sería: 'q + tema (axis.text.x = element_text (ángulo = -90, hjust = 0)) existe' ' – rnorberg
ya no element_text', a menos que sea no en el paquete ggplot2 ... – naught101
Para aquellos para quienes hjust no se comporta como se describe aquí, intente 'theme (axis.text.x = element_text (angle = 90, vjust = 0.5))'. A partir de ggplot2 0.9.3.1, esta parece ser la solución. – lilster