[英]Rotate legend in base graphics
我想要将图例旋转到右轴上的图形外部。 我可以将图例放在图表外面,但我无法弄清楚如何旋转它。 我尝试使用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)
但是在右轴而不是顶轴。
我能想到的最明智的选择是在gridBase的帮助下设置两个绘图区域,并为图例使用基于网格的函数(因为可以始终旋转凹凸)。 莱迪思有一个(我认为是simpleKey),但vcd可能与基本版本最匹配 。
请注意,如果您不需要调整窗口大小,则可能根本不使用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)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.