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

时间:2011-06-29 08:32:37

标签: 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)

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

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

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

plot with slight legend overlap http://users.utu.fi/susjoh/Rplot.png

我尝试手动将图例位置调整到绘图区域之外,例如使用

opts(legend.position=c(0.5,1.1)

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

1 个答案:

答案 0 :(得分: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="")