我想要将图例旋转到右轴上的图形外部。我可以将图例放在图表外面,但我无法弄清楚如何旋转它。我尝试使用las=2
,但这显然不起作用。注意:我正在使用所有其他轴,或者我将图表上方的图例放在两列以实现相同的外观。
我已经拥有的一般例子:
par(mar=c(6,4,5,4)+0.1)
plot(0,type="n")
legend(x="right",
legend=c("Control Chemical","Test Chemcials"),
bty="n",
fill=c("Darkgreen","Dodgerblue4"),
title="Legend Title",
inset=c(-0.2,0),
xpd=TRUE,
horiz=TRUE)
边距可能需要一些调整,但一旦我弄清楚如何旋转图例,我就可以轻松制作。
为了进一步澄清,我希望实现的目标类似于:
legend(x="top",
legend=c("Control Chemical","Test Chemcials"),
bty="n",
fill=c("Darkgreen","Dodgerblue4"),
title="Legend Title",inset=c(0,-0.3),
xpd=TRUE,
horiz=TRUE)
但是在右轴而不是顶轴。
答案 0 :(得分:3)
我能想到的最明智的选择是在gridBase的帮助下设置两个绘图区域,并为图例使用基于网格的函数(因为可以始终旋转凹凸)。莱迪思有一个(我认为是simpleKey),但vcd可能有基本版本的closest match。
请注意,如果您不需要调整窗口的大小,您可能根本不使用gridBase就可以逃脱:只需在右侧给出足够的边距,然后调整x和y坐标以推动右侧的网格图例位置。
这是一个可行的例子,
library(vcd)
par(mar=c(6,4,5,4)+0.1)
plot(0,type="n")
g = grid_legend(0.5, 0.5, pch=c(22,22), col=c("red", "blue"),
gp=gpar(fill = c("Darkgreen","Dodgerblue4")),
labels=c("Control Chemical","Test Chemicals"),
title = "Legend Title", draw=FALSE)
grid.draw(grobTree(g, vp=viewport(x=0.93,angle=-90)))