首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R情节中的传说

R情节中的传说
EN

Stack Overflow用户
提问于 2012-03-02 13:56:47
回答 1查看 40.8K关注 0票数 10

我想把图上的图例分裂成2,这样前3个元素和第4个元素之间有一个大约1线高的间隙。最初,我只是尝试在第一个元素之前添加一个换行符:

代码语言:javascript
运行
复制
legend("topright",col=1,lty=1:3,lwd=1,legend=c("leg1","leg2","\nleg3"), bty="n")

但这似乎增加了所有元素之间的差距(这是记录在案的行为吗?)

然后,我使用了两个不同的传说,将边框设置为"n",并使用lines()重建边框(顺便说一句,是否有一种方法来抑制图例中的一个边框?);虽然这是可行的,但它确实需要对inset的值进行大量的尝试和错误。

insetlegend()中的默认值是c(0,0),但在对legend()的初始调用中,这些值显然会根据图例元素中文本的长度进行调整。根据?legendlegend()调用的值包括

长度(图例)的数字向量,给出图例文本的x和y坐标。

无论如何,这是否可以转换为第二个调用的inset的适当值,以便这两个传说的元素排列起来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-02 14:30:32

只需在您希望空间所在的参数中指定NAs即可。您需要将所有的传奇参数作为向量给出。

代码语言:javascript
运行
复制
    set.seed(2)
    plot(0:10, rnorm(11), col = sample(c("green", "blue"), 11, replace = TRUE), 
        pch = sample(c(3, 19), 11, replace = TRUE), xlim = c(0, 12))
    legend("topright", pch = c(3, 19, NA, 3, 19), 
        col = c("green", "green", NA, "blue", "blue"), 
        legend = c("green cross", "green dot", NA, "blue cross", "blue dot"))

或者,如果您想要对legend()进行2次调用以获得更精细的控件,请在参数中指定trace=TRUE,它将返回所需的x和y坐标。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9534481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档