我想将图上的图例分成2,以便前3个元素与第4个元素分开约1行高的间隙.我最初只是尝试在第一个元素之前添加换行符:
legend("topright",col=1,lty=1:3,lwd=1,legend=c("leg1","leg2","\nleg3"), bty="n")
Run Code Online (Sandbox Code Playgroud)
但这似乎增加了所有元素之间的差距(这是记录在案的行为吗?)
然后我使用2个单独的图例,设置边框"n"并使用lines()重建边框(顺便说一句,有没有办法只抑制图例的1个边框?); 虽然这有效,但它确实需要大量的试验和错误的值inset.
insetin 的默认值legend()是c(0,0),但这些显然会在初始调用中legend()根据该图例元素中文本的长度进行调整.根据?legend,legend()呼叫的价值包括
"长度为长度的数字向量(图例),给出图例文本的x和y坐标."
无论如何,这可以转换为inset第二个调用的合适值,以便两个图例的元素对齐?
tim*_*ffe 22
只需在您想要空间的参数中指定NA.您需要将所有图例参数作为向量.
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"))
Run Code Online (Sandbox Code Playgroud)

或者,如果要进行2次调用以legend()获得更好的控制,请trace=TRUE在参数中指定并返回所需的x和y坐标.
| 归档时间: |
|
| 查看次数: |
37222 次 |
| 最近记录: |