Załóżmy, że mam następująceZmiana kształty stosowane do scale_shape() in ggplot2
y <- rnorm(10)
b <- as.factor(sample(1:4,10,replace=T))
qplot(1:10, y, shape=b)
Jak mogę zmienić kształty, które są wykorzystywane przy użyciu ggplot2
?
Załóżmy, że mam następująceZmiana kształty stosowane do scale_shape() in ggplot2
y <- rnorm(10)
b <- as.factor(sample(1:4,10,replace=T))
qplot(1:10, y, shape=b)
Jak mogę zmienić kształty, które są wykorzystywane przy użyciu ggplot2
?
Sposób, ggplot zrobić byłoby użyć scale_shape_manual
i zapewnienia pożądanych kształtów w values
argumentu:
qplot(1:10, y, shape=b) + scale_shape_manual(values = c(0, 5, 6, 15))
kształty są takie same jak zwykle 0-25 indeksów: http://yusung.blogspot.com/2008/11/plot-symbols-in-r.html
> 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)
Czy to masz na myśli? Wyobrażam sobie, że możesz użyć dowolnej z kreślonych postaci R ...
To może nie być bardzo "ggplot", ale strona podręcznika brzmi "Możesz go użyć tak, jakbyś użył" fabuła "funkcja.". :-)
'Error: scale_shape_discrete może zajmować się maksymalnie 6 wartości dyskretnych, ale trzeba 10. Patrz? scale_manual do ewentualnej alternative' – isomorphismes
do complemen Odpowiedź t Harlana, oto odnośniki do dostępnych kształtów - start od 0 na dole po lewej i przeczytać w prawo, potem w górę (10L + 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))
jest to znacznie lepszy sposób to zrobić, jak zachowuje legendę i pracuje z grafiką ggplot nie bazowych. Codziennie uczę się więcej o ggplot, dzięki! – Vince
Witam, jak zmienić rozmiar symboli podczas korzystania z scale_shape_manual()? Próbowałem użyć geom_point (size = 4), ale wynik był podwójny (dwa rozmiary). Każda pomoc zostanie doceniona. – Rafael
Jeśli używasz qplot, 'size = 4' musi wchodzić do wywołania' qplot', a nie osobno. Jeśli dodasz dodatkowy "geom_point", skutecznie tworzysz drugą warstwę. (To, nawiasem mówiąc, dlatego nie powinieneś używać 'qplot' - jest to mylące.) – Harlan