Pergunta

Suponha que eu tenha o seguinte

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

Como faço para alterar as formas usadas usando ggplot2?

Foi útil?

Solução

A maneira ggplot de fazer isso seria usar scale_shape_manual e fornecer as formas desejadas no values argumento:

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

result of above

As formas são as mesmas que os índices usuais de 0 a 25: http://yusung.blogspot.com/2008/11/plot-symbols-in-r.html

Outras dicas

Para complementar a resposta de Harlan, aqui estão as referências para as formas disponíveis - inicie a partir de 0 no canto inferior esquerdo e leia para a direita (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

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

É isto que você quer dizer? Eu imagino que você pode usar qualquer um dos personagens da trama de R ...

Essa pode não ser uma maneira muito 'ggplot' de fazer isso, mas a página do homem diz "Você pode usá -lo como se usasse a função" plotagem ".". :-)

alt text

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top