使用opts()更改图例位置/方向无效

jor*_*ran 13 r ggplot2

创建以下绘图会导致图例垂直放置在右侧,而不是水平放置在底部,如调用中所示opts():

dat <- data.frame(x = runif(10), y = runif(10), 
                  grp = rep(letters[1:2],each = 5))

ggplot(data = dat, aes(x = x, y = y, colour = grp)) + 
  geom_point() + 
  opts(legend.position = "bottom", legend.direction = "horizontal") + 
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何在正确的位置获得图例?

jor*_*ran 21

问题是theme_bw()在调用之后放置opts(),并重置一些默认值.就在theme_bw()之前opts():

ggplot(data = dat, aes(x = x, y = y, colour = grp)) + 
  geom_point() + 
  theme_bw() +
  opts(legend.position = "bottom", legend.direction = "horizontal")
Run Code Online (Sandbox Code Playgroud)

注意:由于版本0.9.2 opts已被替换theme:

theme(legend.position = "bottom", legend.direction = "horizontal")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述