Подтвердить что ты не робот

Изменение форм, используемых для scale_shape() в ggplot2

Предположим, что у меня есть

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

Как изменить формы, которые используются с помощью ggplot2?

4b9b3361

Ответ 1

Способ ggplot для этого состоит в использовании scale_shape_manual и предоставлении желаемых фигур в аргументе values:

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

result of above

Формы те же, что и обычные индексы 0-25: http://yusung.blogspot.com/2008/11/plot-symbols-in-r.html

Ответ 2

Чтобы дополнить Harlan answer, вот ссылки для доступных фигур - начинайте с 0 внизу слева и читайте справа, затем вверх (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

Ответ 3

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

Это то, что вы имеете в виду? Я предполагаю, что вы можете использовать любой из символов R-графика...

Это может быть не очень "ggplot" способ сделать это, хотя, но справочная страница читает "Вы можете использовать его, как если бы вы использовали функцию" plot ".: -)

alt text