Punto de Control de grosor de borde en ggplot

Cuando se utiliza ggplot, puedo establecer shape para 21-25 para obtener las formas que han independiente de la configuración interna (fill) y frontera (col) colores, así:

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)

Punto de Control de grosor de borde en ggplot

Sin embargo, no puedo entender cómo controlar el espesor de la forma de las fronteras, la fijación de ellos absolutamente o como una estética de la cartografía. Tomo nota de que si se establece un lwd valor, anula el size estética:

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

Punto de Control de grosor de borde en ggplot

¿Cómo puedo controlar el grosor del borde?

InformationsquelleAutor Noam Ross | 2013-10-21

3 Kommentare

  1. 71

    A partir de la versión 2.0.0 de ggplot2, no es un argumento para punto de control fronterizo de espesor. Desde el NEWS.md de archivo:

    geom_point() obtiene un trazo estética que controla el ancho del borde de las formas 21-25 (#1133, @SeySayux). el tamaño y el accidente cerebrovascular se suman así a un punto size = 5 y accidente cerebrovascular = 5 tendrá un diámetro de 10mm. (#1142)

    Por lo tanto, la correcta solución a 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)

    Punto de Control de grosor de borde en ggplot

    • Puedes añadir la salida?
    • Para la compatibilidad futura y la claridad que sería bueno decir «a Partir de la versión x.xx» en lugar de «la última versión».
    • Es allí una manera de controlar el espesor de la carrera a partir de las variables? Algo a lo largo de las líneas de «scale_stroke_manual»?
    • Como respuesta a mi propio comentario de arriba, podemos usar scale_discrete_manual. Ver enlace aquí: github.com/tidyverse/ggplot2/issues/3507#issuecomment-526212978
  2. 14

    Se siente un poco chapucero, pero usted puede agregar un «fondo» conjunto de puntos con el tamaño ajustado a la estética de asignación, además de algunas pequeñas constante a ampliar la frontera de los puntos. Jugar con la constante para obtener la deseada ancho de borde.

    También tendrás que desactivar el tamaño de la leyenda para detener la visualización de 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)

    Punto de Control de grosor de borde en ggplot

    • Tal vez hackey, pero Hadley aprobado este método en Twitter
    • ¿tienes el enlace para que?
    • href=»https://twitter.com/hadleywickham/status/392440209922469888″ >twitter.com/hadleywickham/status/392440209922469888
    • pero yo lo quería para escribir las palabras scale_stroke_manual
  3. 2

    Otra solución es crear la trama en R y, a continuación, exportar a una .archivo svg. La anchura de línea puede entonces ser cambiado utilizando el vector de software de edición de gráficos (por ejemplo, Inkscape). Este método es particularmente útil cuando los datos de los puntos de superposición.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea