ggbiplot - change the group color and marker

lroca picture lroca · Oct 27, 2016 · Viewed 8.8k times · Source

In the example ggbiplot script plot there are 3 groups, how can I change the marker colors and shapes?

library(ggbiplot)
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, group=wine.class,
         varname.size = 3, labels.size=3, 
         ellipse = TRUE, circle = TRUE) +
  scale_color_discrete(name = '') +  
  geom_point(aes(colour=wine.class), size = 3) +
  theme(legend.direction ='horizontal', 
        legend.position = 'top')

Answer

Joe picture Joe · Oct 28, 2016

The following works for me.

ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, group=wine.class,
     varname.size = 3, labels.size=3, ellipse = TRUE, circle = TRUE) +
scale_color_manual(name="Variety", values=c("orange", "purple", "green")) +  
scale_shape_manual(name="Variety", values=c(17:19)) +
geom_point(aes(colour=wine.class, shape=wine.class), size = 3) +
theme(legend.direction ="horizontal", 
      legend.position = "top")

enter image description here

For the legend, the trick seems to be to use the same name for scale_color_manual and scale_shape_manual.