web-dev-qa-db-fra.com

Modification des formes utilisées pour scale_shape () dans ggplot2

Supposons que j'ai les éléments suivants

y <- rnorm(10)
b <- as.factor(sample(1:4,10,replace=T))
qplot(1:10, y, shape=b)

Comment modifier les formes utilisées à l'aide de ggplot2?

30
Christopher DuBois

La manière ggplot de le faire serait d'utiliser scale_shape_manual et fournissez les formes souhaitées dans l'argument values:

qplot(1:10, y, shape=b) + scale_shape_manual(values = c(0, 5, 6, 15))

result of above

Les formes sont les mêmes que les index 0-25 habituels: http://yusung.blogspot.com/2008/11/plot-symbols-in-r.html

42
Harlan

Pour compléter la réponse de Harlan, voici une référence pour les formes disponibles - commencez à partir de 0 en bas à gauche et lisez à droite puis vers le haut (10y + x):

df <- data.frame(x=c(0:129))
ggplot(df, aes(x=x%%10, y=floor(x/10), shape=factor(x), colour=x, size=10)) +
  geom_point() +
  scale_shape_manual(values=df$x) + theme(legend.position='none') +
  scale_x_continuous(breaks=0:10) + scale_y_continuous(breaks=0:12) +
  scale_colour_hue() + scale_colour_gradientn(colours=Rainbow(3))

Shapes available in ggplot2

20
naught101
> y <- rnorm(10)
> b <- as.factor(sample(1:4,10,replace=T))
> qplot(1:10, y, shape=b)
> qplot(1:10, y, pch=letters[1:10], cex=6)

C'est ce que tu veux dire? J'imagine que vous pouvez utiliser n'importe lequel des personnages de traçage de R ...

Ce n'est peut-être pas une manière très "ggplot" de faire cela, mais la page de manuel indique "Vous pouvez l'utiliser comme vous utiliseriez la fonction" plot ".". :-)

alt text

6
Vince