¿Hay algún método para establecer las marcas del eje theta para un gráfico circular de anillo en ggplot2?
Quiero mostrar una marca de verificación para el eje theta en el gráfico polar de ggplot2. Sin embargo, tanto axis.ticks.y como axis.ticks.y en el tema() no funcionan para el eje theta. Cualquier ayuda sería apreciada, gracias.
library(ggplot2)
df <- data.frame(
start = c(0, 121, 241),
end = c(120, 240, 359),
group = letters[1:3]
)
Un ejemplo de gráfico circular de anillo
base <- ggplot(df, aes(ymax = end, ymin = start,
xmin = 0.8, xmax = 1,
fill = group)) +
geom_rect() +
coord_polar(theta = "y") +
xlim(c(0, 1))
base
# El tick del eje y se puede cambiar
base + theme(axis.ticks.y = element_blank(), axis.text.y = element_blank())
# Establecer el tick del eje x no funcionó para el eje theta
base + theme(axis.ticks.x = element_line(color = "black", size = 2))
Gracias a @Vishal A., la respuesta de https://stackoverflow.com/questions/33549739/controlling-ticks-and-odd-text-in-a-pie-chart-generated-from-a-factor-variable-i/33551864#33551864 utiliza panel.grid.major.y
. Sin embargo, esto agregará las cuadrículas principales en lugar de los ticks como se muestra a continuación:
base + theme(panel.grid.major.y = element_line(colour = "black"))
[Imagen]
*Creado el 2021-12-20 por el paquete reprex (v2.0.1)*
davy.ai
Para agregar marcas de verificación al eje de theta en una gráfica polar de ggplot2, podemos usar el parámetro
axis.ticks.length
en la funcióntheme()
para controlar la longitud de las marcas y hacer que sean cero, ocultándolas efectivamente, y luego agregar nuevas marcas de verificación manualmente utilizando la funcióngeom_segment()
. Aquí está el código modificado:Esto creará una gráfica polar con las marcas de verificación especificadas para el eje de theta:
Ajustando el parámetro
yend
engeom_segment()
, podemos controlar la longitud de las marcas de verificación.