En R, la función plot()
toma un argumento pch
que controla la apariencia de los puntos en el gráfico. Estoy haciendo diagramas de dispersión con decenas de miles de puntos y prefiero un punto pequeño, pero no demasiado pequeño. Básicamente, creo que pch='.'
es demasiado pequeño, pero pch=19
es demasiado gordo. ¿Hay algo en el medio o alguna forma de escalar los puntos de alguna manera?¿Controla el tamaño de los puntos en una R scatterplot?
Respuesta
Prueba el cex
argumento:
?par
cex
Un valor numérico que da la cantidad por el cual el trazado de texto y símbolos deben ser magnificados relativa al valor predeterminado. Tenga en cuenta que algunos funciones gráficas tales como plot.default tienen un argumento de este nombre que multiplica este parámetro gráfica, y algunas funciones, como puntos aceptan un vector de valores que se reciclan. Otros usos serán tomando solo el primer valor si se proporciona un vector de longitud mayor que uno .
no creo que alguna vez use 'cex' para controlar el tamaño del símbolo a menos que no tenga otra opción. Solo funciona algunas veces; la regla es que cuando 'cex' se establece mediante 'par', afecta el tamaño del (la mayoría) del texto en el gráfico, cuando se establece dentro de 'gráfico', 'cex' afecta solo el tamaño del símbolo. Por lo tanto, si aplica incorrectamente esa regla, no solo no se cambia el tamaño de su símbolo, sino que ahora tiene múltiples parámetros que afectan el tamaño del texto (cex.axis, cex.lab, cex.main y cex.sub - todos hacen lo mismo trabajo como 'cex', solo por partes). Código como ese es difícil de mantener y extender. – doug
De acuerdo. Establecer 'cex' globalmente a través de' par' cambia todo tipo de cosas, incluidos los márgenes de figura, que debe corregir. Sin embargo, la configuración de 'cex' dentro de' plot' parece funcionar. – flies
PCH = 20 vuelve un símbolo dimensionados entre "" y 19.
Es un símbolo lleno (que es probablemente lo que desea).
Aparte de eso, incluso el sistema de gráficos base en R permite al usuario un control detallado sobre el tamaño, el color y la forma del símbolo. Por ejemplo,
dfx = data.frame(ev1=1:10, ev2=sample(10:99, 10), ev3=10:1)
with(dfx, symbols(x=ev1, y=ev2, circles=ev3, inches=1/3,
ann=F, bg="steelblue2", fg=NULL))
Me encanta esta trama, pero me gustaría que el radio sea igual al número de observaciones en ese punto, ¿podría mostrarme cómo hacerlo? –
'pi * R^2' (la superficie) debe ser proporcional al número de observaciones. – SESman
@saratis Esto hará lo que quieras: 'símbolos (x = dfx $ ev1, y = dfx $ ev2, círculos = sqrt (dfx $ ev3/pi), pulgadas = 1/3, ann = F, bg =" steelblue2 ", fg = NULL)' – fmark
Como rcs indicado, cex
harán el trabajo en el paquete de gráficos de base. Supongo que no está dispuesto a hacer su gráfico en ggplot2
, pero si lo hace, hay un atributo estético size
, que puede controlar fácilmente (ggplot2
tiene argumentos de funciones fáciles de usar: en lugar de escribir cex
(expansión de caracteres), en ggplot2
puede escribir, por ejemplo, size = 2
y obtendrá un punto de 2 mm).
Aquí está el ejemplo:
### base graphics ###
plot(mpg ~ hp, data = mtcars, pch = 16, cex = .9)
### ggplot2 ###
# with qplot()
qplot(mpg, hp, data = mtcars, size = I(2))
# or with ggplot() + geom_point()
ggplot(mtcars, aes(mpg, hp), size = 2) + geom_point()
# or another solution:
ggplot(mtcars, aes(mpg, hp)) + geom_point(size = 2)
Y, si realmente trazas decenas de miles de puntos, ggplot2 tiene varias formas alternativas de que se vea bien - ajustes alfa, contenedores hexagonales, diagramas de contorno, etc. Consulte las páginas 72-77 del libro ggplot2, si hay uno en su biblioteca o si su biblioteca tiene acceso electrónico a libros Springer (creo que la mayoría de los libros R están ahí) –
Sí ... Especialmente uso 'alpha' en diagramas de dispersión, para evitar el sobrerrollamiento. – aL3xa
- 1. R stat_smooth todos los puntos
- 2. R: eliminación de los últimos tres puntos de una cadena
- 3. r puntos en polígonos
- 4. r - ggplot2 - resaltar los puntos seleccionados y el comportamiento extraño
- 5. ¿Cómo etiquetar puntos en un diagrama de dispersión con R?
- 6. ¿Controla el tamaño de la fuente en gráficos en LaTeX cuando escala en minipage/subfig?
- 7. puntos máximos de trazado en R?
- 8. Trazar múltiples conjuntos de puntos en R
- 9. Cómo extraer los datos de píxeles ¿Usa el paquete de mapas de puntos de R?
- 10. Obtener área o elementos en Scatterplot ampliado
- 11. C# controla la alineación de los datos
- 12. Aumentar el tamaño de los nombres de los diagramas de caja en R
- 13. ¿Cómo puedo hacer una lista de todos los pares únicos de puntos de datos en R?
- 14. ¿Qué controla el cambio automático de tamaño de ventana en Tkinter?
- 15. Área cubierta por una nube de puntos con R
- 16. ¿Cómo aumentar el tamaño de los puntos en ggplot2, similar a cex en gráficos base?
- 17. En R, ¿cómo hacer que los puntos sean transparentes al usar scale_size en ggplot2?
- 18. El estilo de la cartografía asp.net controla
- 19. ver los valores de los puntos del gráfico cuando el mouse está en los puntos
- 20. pedidos puntos agruparon utilizando Kmeans y R
- 21. agregando datos de propagación a gráficos de puntos en R
- 22. Caída de líneas de puntos reales a modelados en R
- 23. ventanas SlimDX en WPF controla
- 24. ¿Cómo modificar 2d Scatterplot para mostrar el color en función de la tercera matriz en el archivo csv?
- 25. Trazado de funciones en la parte superior de los puntos de datos en R
- 26. Tamaño de gráfico consistente en R usando ggplot2 (la leyenda y el eje cambian el tamaño)
- 27. parcelas Generación 3D en R con puntos y puntos de vista de datos arbitrarias
- 28. iOS: ¿cómo se controla el tamaño de un controlador de vista modal?
- 29. Cómo encontrar los puntos de borde de una forma particular
- 30. Krypton ¿Controla a alguien?
en lugar de hacer puntos más pequeños, ¿hay una manera de trazar simplemente dicen 100 puntos de datos aleatorios serían serían fáciles de ver que 1000? – user2363642
Para muchos puntos pequeños, usar alfa (transparencia) puede hacer que un diagrama de dispersión sea mucho más informativo que solo usar menos puntos para trazarlo. –