R 如何在ggplot2中移动或定位图例

R 如何在ggplot2中移动或定位图例,r,ggplot2,legend,legend-properties,R,Ggplot2,Legend,Legend Properties,我正在尝试创建一个ggplot2绘图,绘图下面有图例 ggplot2手册在第112页上说,“图例的位置和对齐由主题设置legend.position控制,值可以是右、左、上、下、无(无图例)或数字位置” 下面的代码可以工作(因为“right”是默认值),它也可以使用“none”作为图例位置,但是“left”、“top”、“bottom”都会因“grid.Call.graphics中的错误(“L_setviewport”,pvp,TRUE):视口的非有限位置和/或大小”而失败 库(ggplot2)

我正在尝试创建一个ggplot2绘图,绘图下面有图例

ggplot2手册在第112页上说,“图例的位置和对齐由主题设置legend.position控制,值可以是右、左、上、下、无(无图例)或数字位置”

下面的代码可以工作(因为“right”是默认值),它也可以使用“none”作为图例位置,但是“left”、“top”、“bottom”都会因“grid.Call.graphics中的错误(“L_setviewport”,pvp,TRUE):视口的非有限位置和/或大小”而失败

库(ggplot2)
(myDat版本>0.9.3(当
opts
被弃用时)


旧版本:

不幸的是,这是ggplot2中的一个bug,我真的很希望在今年夏天修复它

更新:


涉及
选项的bug(legend.position=“left”)
已使用最新版本的ggplot2修复。此外,版本0.9.0引入了
guide\u legend
guide\u colorbar
,可以更精细地控制图例内项目的外观和位置。例如,可以指定图例项目的d列。

您始终可以手动放置图例-但由于标签仍然堆叠/垂直,看起来有点难看。我真的希望hadley能找到时间解决此问题:-)


p在较新版本的
ggplot2
中,可以使用
+主题(legend.position='bottom')

请参阅以了解更多关于善良的传说

响应注释, TeMeUpDead() >如果在GGTRAP的中间调用(如<代码> + TeMeUpDeDeUE())/>代码>,只在随后的时间内不被踢入。它还修改了活动主题而不是特定的情节。因此,您可以这样做:

theme_update(legend.position='bottom')
qplot(VarX,VarY, data=myDat, shape=Descrip) 

结果如上所述,不同之处在于后续绘图也将默认为底部的图例。

当我在这里时,只需对这些答案进行一些更新。 正如哈德利所提到的,您可以使用
主题(legend.position=“bottom”)

或者用它手动移动
主题(legend.position=c(.2.85))


如果您希望图例是水平的,请使用
theme(legend.position=c(.2.85),legend.direction=“horizontal”)
opts()
现在已被弃用-改为使用
guide\u legend()
。您可以在
theme
参数中调用
legend.direction=“horizontal”
。这不是在
theme\u update中完成的吗(Ford.Posie=“底部”)<代码> > Ruivira,用于<代码> TeMeUpDead()>代码>,请参阅“使用MUTE()修改单个情节的主题;请参阅TeMeUpDeDeO()),如果要修改活动主题,则影响所有后续情节。“以主题(图例,位置=“底部”))我的图示出现在左下方,而在您的示例中,则显示在中间。(我认为这是我过去几年来的阴谋)。你知道这件事是否发生了变化,又是如何在中间进行的?
theme(legend.position = "bottom")
p <- qplot(VarX,VarY, data=myDat, shape=Descrip) + 
opts(legend.position=c(.5,0.9),plot.margin = unit(c(6,0,0,0), "lines"))
qplot(VarX,VarY, data=myDat, shape=Descrip) + 
  theme(legend.position='bottom')
theme_update(legend.position='bottom')
qplot(VarX,VarY, data=myDat, shape=Descrip)