繁体   English   中英

在基本图形中旋转图例

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM