Controlar el tamaño de los puntos en un diagrama de dispersión R?
-
24-09-2019 - |
Pregunta
En r, el plot()
la función toma un pch
argumento que controla la apariencia de los puntos en la trama. 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, encuentro pch='.'
ser demasiado pequeño, pero pch=19
estar demasiado gordo. ¿Hay algo en el medio o alguna forma de escalar los puntos de alguna manera?
Solución
Prueba el cex
argumento:
?par
cex
Un valor numérico que proporciona la cantidad por la cual trazar texto y símbolos debe ampliarse en relación con el valor predeterminado. Tenga en cuenta que algunas funciones gráficas como Plot.default tienen un argumento de este nombre que multiplica este parámetro gráfico, y algunas funciones como los puntos aceptan un vector de valores que se recicla. Otros usos tomarán solo el primer valor si se suministra un vector de longitud mayor que uno.
Otros consejos
PCH = 20 Devuelve un símbolo del tamaño Entre "." y 19.
Es un lleno símbolo (que es probablemente lo que quieres).
Aparte de eso, incluso el sistema de gráficos base en R permite un control de grano fino del usuario sobre el tamaño, el color y la forma del símbolo. P.ej,
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))
Como RCS fijado, cex
Hará el trabajo en el paquete de gráficos base. Creo que no estás dispuesto a hacer tu gráfico en ggplot2
Pero si lo haces, hay un size
atributo estético, que puedes controlar fácilmente (ggplot2
tiene argumentos de funciones fáciles de usar: en lugar de escribir cex
(expansión del personaje), en ggplot2
puedes escribir eg size = 2
y obtendrás 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)