Many of the previous characteristics are the same for both axes and legends. Legends can:
You can also choose what is placed in a legend. We use the show.legend
command to do this.
ggplot(df, aes(y, y)) +
geom_point(size = 4, colour = "grey20") +
geom_point(aes(colour = z), size = 2)
ggplot(df, aes(y, y)) +
geom_point(size = 4, colour = "grey20",
show.legend = TRUE) +
geom_point(aes(colour = z), size = 2)
Sometimes we wish to have the legends display different things. For example if we use transparent colors in the plot we may want solid colors in the legend. The alpha
command will make the colors more transparent. However we can override the legend colors and set the alpha
differently:
norm <- data.frame(x = rnorm(1000), y = rnorm(1000))
norm$z <- cut(norm$x, 3, labels = c("a", "b", "c"))
ggplot(norm, aes(x, y)) +
geom_point(aes(colour = z), alpha = 0.1)
ggplot(norm, aes(x, y)) +
geom_point(aes(colour = z), alpha = 0.1) +
guides(colour = guide_legend(override.aes = list(alpha = 1)))
The graph below shows the graph on the left where we let R create the legend. Then the graph on the right shows our changes and overriding on the colors.
We can choose the specific layout of the legend. For example we can place it at the “top”, “bottom”, “right” , “left” or not even have a legend at all.
df <- data.frame(x = 1:3, y = 1:3, z = c("a", "b", "c"))
base <- ggplot(df, aes(x, y)) +
geom_point(aes(colour = z), size = 3) +
xlab(NULL) +
ylab(NULL)
base + theme(legend.position = "right") # the default
base + theme(legend.position = "bottom")
base + theme(legend.position = "none")