I have been looking for similar answer. But found that opts
function is no longer part of ggplot2 package. After searching for some more time, I found that one can use theme
to do similar thing as opts. Therefore editing this thread, so as to minimize others time.
Below is the similar code as written by nzcoops.
mtcars$cyl <- factor(mtcars$cyl, labels=c("four","six","eight"))
library(gridExtra)
a <- ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + geom_point(aes(colour=cyl)) + labs(title = "Legend is top left") +
theme(legend.justification = c(0, 1), legend.position = c(0, 1))
b <- ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + geom_point(aes(colour=cyl)) + labs(title = "Legend is bottom right") +
theme(legend.justification = c(1, 0), legend.position = c(1, 0))
c <- ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + geom_point(aes(colour=cyl)) + labs(title = "Legend is bottom left") +
theme(legend.justification = c(0, 0), legend.position = c(0, 0))
d <- ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + geom_point(aes(colour=cyl)) + labs(title = "Legend is top right") +
theme(legend.justification = c(1, 1), legend.position = c(1, 1))
grid.arrange(a,b,c,d)
This code will give exactly similar plot.
legend.position
to place the legend in a corner of the "data region", or the grey region. As I mentioned in chat, I suspected someone like you would have to weigh in with a grid solution. – joran