web-dev-qa-db-fra.com

Contrôler la taille des points dans un diagramme de dispersion R?

Dans R, la fonction plot() prend un argument pch qui contrôle l'apparence des points du tracé. Je fais des nuages ​​de points avec des dizaines de milliers de points et je préfère un petit point, mais pas trop petit. En gros, je trouve pch='.' trop petit, mais pch=19 trop gros. Y at-il quelque chose au milieu ou un moyen de réduire les points d’une manière ou d’une autre?

107
Nick

Essayez l'argument cex:

?par

  • cex
    Valeur numérique indiquant l’importance de l’agrandissement du texte et des symboles graphiques par rapport à la valeur par défaut. Notez que certaines fonctions graphiques telles que plot.default ont un argument de ce nom qui multiplie ce paramètre graphique et que certaines fonctions telles que les points acceptent un vecteur de valeurs qui sont recyclées. D'autres utilisations ne prendront que la première valeur si un vecteur de longueur supérieure à un est fourni.
89
rcs

pch = 20 renvoie un symbole de la taille entre "." et 19.

C'est un symbole rempli (qui est probablement ce que vous voulez).

En plus de cela, même le système graphique de base en R permet à l'utilisateur de contrôler avec précision la taille, la couleur et la forme des symboles. Par exemple.,

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))

Graph example

94
doug

Comme rcs déclaré, cex effectuera le travail dans le package graphique de base. Je pense que vous n'êtes pas disposé à faire votre graphique dans ggplot2 mais si vous le faites, il y a un attribut esthétique size que vous pouvez facilement contrôler (ggplot2 a des arguments de fonction conviviaux : au lieu de taper cex (développement de caractères), dans ggplot2, vous pouvez taper, par exemple, size = 2 et vous obtiendrez un point de 2 mm).

Voici l'exemple:

### 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)
20
aL3xa