【发布时间】:2017-07-31 03:27:59
【问题描述】:
我正在尝试实现question 中的答案之一
我正在使用第三个答案,即具有函数 new_legend 的答案。 这是我的输出。
我无法共享数据。只需将其视为 data.frames 中的列:df1、df2、df12。
生成图像的代码如下:
add_legend <- function(...) {
opar <- par(fig=c(0, 1, 0, 1), oma=c(0, 0, 0, 0),
mar=c(0, 0, 0, 0), new=TRUE)
on.exit(par(opar))
plot(0, 0, type='n', bty='n', xaxt='n', yaxt='n')
legend(...)
}
op <- par(cex = 1)
#bc
plot(df1[,2],df2[,1],xlab="save",ylab="log85",ylim=c(6, 10))
#bc2
points(df1[,2],df2[,3],xlab="save",ylab="log85",col=2)
#od
points(df1[,2],df1[,1],pch=3,col=3)
#od2
points(df12[,2],df12[,1],pch=3)
add_legend("top", legend=c("too big text", "description with","a lot of" ,"useless freespace"),
col=c(1, 2,3,1),pch=c(1,1,3,3),horiz=TRUE, bty='n', x.intersp = 0.3)
我想将图例放在描述之间的可用空间较小且字体较大的位置。我试过使用x.intersp,但它只是减少了符号与其描述之间的距离,而不是前一个描述和下一个符号之间的距离。如果我在绘制之前使用par(cex=1),那么字体大小很好,但会剪掉更多的文字。
任何帮助将不胜感激。
【问题讨论】:
-
@d.b 我已经添加了代码。不过,我无法分享数据。任何帮助,将不胜感激。 ;)