ggtitle ggplot geom_text change r ggplot2 border point thickness

r - geom_text - ggplot2 pdf



Grosor del borde del punto de control en ggplot (3)

Comenzando en la versión 2.0.0 de ggplot2 , hay un argumento para controlar el grosor del borde del punto. Del archivo NEWS.md :

geom_point () gana una estética de trazo que controla el ancho del borde de las formas 21-25 (# 1133, @SeySayux). el tamaño y el trazo son aditivos, por lo que un punto con un tamaño = 5 y un trazo = 5 tendrán un diámetro de 10 mm. (# 1142)

Por lo tanto, la solución correcta para esto es ahora:

df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y)) + geom_point(aes(fill=id, size=id), colour="black", shape=21, stroke = 2)

Cuando uso ggplot, puedo configurar la shape en 21-25 para obtener formas que tengan una configuración independiente para los colores internos ( fill ) y borde ( col ), como los que se muestran a continuación:

df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y)) + geom_point(aes(fill=id, size=id), colour="black", shape=21)

Sin embargo, no puedo entender cómo controlar el grosor de los bordes de la forma, ya sea configurándolos de manera absoluta o como un mapeo estético. Observo que si establezco un valor de lwd , anula el size estético:

ggplot(df, aes(x=x, y=y)) + geom_point(aes(fill=id, size=id), colour="black", shape=21, lwd=2)

¿Cómo controlo el grosor del borde?


Otra solución es crear el diagrama en R y luego exportarlo a un archivo .svg. El ancho de línea puede modificarse utilizando un software de edición de gráficos vectoriales (por ejemplo, Inkscape). Este método es particularmente útil cuando los puntos de datos se superponen.


Se siente un poco hacky pero puedes agregar un conjunto de puntos de " fondo " con el tamaño establecido en el mapeo estético más una pequeña constante para agrandar el borde de los puntos. Juega con la constante para obtener el ancho del borde deseado.

También deberá deshabilitar la leyenda de tamaño para que deje de mostrar la leyenda en el gráfico ...

ggplot(df, aes(x=x, y=y)) + geom_point(aes(size=id+0.5), colour="black" , show_guide = FALSE )+ scale_size( guide = "none" )+ geom_point(aes(fill=id, size=id), colour="black", shape=21)