library(reshape2) # for melt
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p2 <- p1 + geom_point(aes(size = value))
# Basic form
p1 + scale_fill_continuous(guide = "legend")p1 + scale_fill_continuous(guide = guide_legend())# Guide title
p1 + scale_fill_continuous(guide = guide_legend(title = "V")) # title textp1 + scale_fill_continuous(name = "V") # samep1 + scale_fill_continuous(guide = guide_legend(title = NULL)) # no title# Control styles
# key size
p1 + guides(fill = guide_legend(keywidth = 3, keyheight = 1))# title position
p1 + guides(fill = guide_legend(title = "LEFT", title.position = "left"))# title text styles via element_text
p1 + guides(fill = guide_legend(
title.theme = element_text(size=15, face="italic", colour = "red", angle = 45)))# label position
p1 + guides(fill = guide_legend(label.position = "bottom"))# label styles
p1 + scale_fill_continuous(breaks = c(5, 10, 15),
labels = paste("long", c(5, 10, 15)),
guide = guide_legend(direction = "horizontal", title.position = "top",
label.position="bottom", label.hjust = 0.5, label.vjust = 0.5,
label.theme = element_text(angle = 90)))# Set aesthetic of legend key
# very low alpha value make it difficult to see legend key
p3 <- qplot(carat, price, data = diamonds, colour = color,
alpha = I(1/100))
p3# override.aes overwrites the alpha
p3 + guides(colour = guide_legend(override.aes = list(alpha = 1)))# multiple row/col legends
p <- qplot(1:20, 1:20, colour = letters[1:20])
p + guides(col = guide_legend(nrow = 8))p + guides(col = guide_legend(ncol = 8))p + guides(col = guide_legend(nrow = 8, byrow = TRUE))p + guides(col = guide_legend(ncol = 8, byrow = TRUE))# reversed order legend
p + guides(col = guide_legend(reverse = TRUE))