ggplot2:图例重叠绘图区域 - 是否可以手动调整图例位置?

sus*_*joh 5 r ggplot2

假设我有一个关于来自不同领域和不同品种的胡萝卜产量的数据集:

carrots<-list(Yield=c(345,226,74,559,288,194),
          Field=c("A","B","C","D","E","F"),
          Breed=rep(c("Long","Short"),each=3))
carrots<-data.frame(carrots)
Run Code Online (Sandbox Code Playgroud)

我想绘制一个条形图,显示每个字段的产量,按品种着色:

ggplot(carrots,aes(y=Yield,x=Field,fill=Breed)) +
   geom_bar() +
   opts(legend.direction = "horizontal",
        legend.position = "top") +
   labs(fill="")
Run Code Online (Sandbox Code Playgroud)

但是传说总是与情节区域略微重叠:

带有轻微图例重叠的情节http://users.utu.fi/susjoh/Rplot.png

我已经尝试手动调整图例位置,使其位于绘图区域之外,例如

opts(legend.position=c(0.5,1.1)
Run Code Online (Sandbox Code Playgroud)

然后情节边缘切断了传说,我不知道如何调整它们.这个问题有更微妙的解决方案吗?

koh*_*ske 8

在我的环境中,图例根本不与绘图区域重叠,但无论如何重叠的是图例的背景,因此您可以通过以下方式将其删除:

ggplot(carrots,aes(y=Yield,x=Field,fill=Breed)) +
 geom_bar() +
 opts(legend.direction = "horizontal",
    legend.position = "top",
        legend.background = theme_blank()) + # this does hack
 labs(fill="")
Run Code Online (Sandbox Code Playgroud)