r - 在基本图形的绘图区域之外绘制图例?

标签 r plot legend

正如标题所说:使用基础图形时如何在绘图区域之外绘制图例?

我考虑过摆弄 layout 并生成一个仅包含图例的空图,但我对仅使用基本图形设施和例如 par( mar = ) 在图例右侧获得一些空间作为图例。

<小时/>

这里是一个例子:

plot(1:3, rnorm(3), pch = 1, lty = 1, type = "o", ylim=c(-2,2))
lines(1:3, rnorm(3), pch = 2, lty = 2, type="o")
legend(1,-1,c("group A", "group B"), pch = c(1,2), lty = c(1,2))

产生:

alt text

但如上所述,我希望图例位于绘图区域之外(例如,位于图形/图的右侧。

最佳答案

没有人提到对图例使用负inset值。下面是一个示例,其中图例位于图的右侧,与顶部对齐(使用关键字“topright”)。

# Random data to plot:
A <- data.frame(x=rnorm(100, 20, 2), y=rnorm(100, 20, 2))
B <- data.frame(x=rnorm(100, 21, 1), y=rnorm(100, 21, 1))

# Add extra space to right of plot area; change clipping to figure
par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)

# Plot both groups
plot(y ~ x, A, ylim=range(c(A$y, B$y)), xlim=range(c(A$x, B$x)), pch=1,
               main="Scatter plot of two groups")
points(y ~ x, B, pch=3)

# Add legend to top right, outside plot region
legend("topright", inset=c(-0.2,0), legend=c("A","B"), pch=c(1,3), title="Group")

inset=c(-0.2,0) 的第一个值可能需要根据图例的宽度进行调整。

legend_right

关于r - 在基本图形的绘图区域之外绘制图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3932038/

相关文章:

r - 数据表 (DT) Shiny R - 选择所有找到的行

引用数据框中名称为 paste0 的列

Matlab 将标签放在簇上

R ggplot2图例里面的图

r - 如何将id变量添加到R中的多个数据集

r - 使用 glmer.nb 的 nb.control 参数

python 2.7 matplotlib pylab : My plot is empty. 如何使数据点显示在图中?

python - 调整散点图中的点大小

legend - 在顶部显示图例,就像在 c3js 中的底部外观一样

c# - 删除/隐藏图例图表 excel