R 无论打印尺寸如何,对文本()和图例()使用恒定垂直调整

R 无论打印尺寸如何,对文本()和图例()使用恒定垂直调整,r,R,要在R中为条形图绘制X轴标签,我使用text()如下所示: text(mean(bp), par("usr")[3] - 0.05*yDiff, xpd=NA, labels=journey, cex=0.9, font=2) legend("bottom", legend=abbrevLabels, fill=c(colors), xpd=NA, horiz=TRUE, bty="n", cex=1.0, inset=c(0, -0.3), xjust=0, adj=0.035,

要在
R
中为条形图绘制X轴标签,我使用
text()
如下所示:

text(mean(bp), par("usr")[3] - 0.05*yDiff, xpd=NA, labels=journey, cex=0.9, font=2)
legend("bottom", legend=abbrevLabels, fill=c(colors), xpd=NA, horiz=TRUE, bty="n", 
   cex=1.0, inset=c(0, -0.3), xjust=0, adj=0.035, 
   text.width=rep(meanLabelLen/7.5, length(legendLabels)))
要绘制图例,我使用以下内容:

text(mean(bp), par("usr")[3] - 0.05*yDiff, xpd=NA, labels=journey, cex=0.9, font=2)
legend("bottom", legend=abbrevLabels, fill=c(colors), xpd=NA, horiz=TRUE, bty="n", 
   cex=1.0, inset=c(0, -0.3), xjust=0, adj=0.035, 
   text.width=rep(meanLabelLen/7.5, length(legendLabels)))
此处的两个垂直偏移(图例的
0.05*yDiff
和插入偏移
-0.3
)均位于Y轴空间。出于各种原因,这对我来说是个问题。相反,我更喜欢以像素为单位的偏移。也就是说,我真正想说的是:“渲染图形底部以下10个像素的标签”


如何做到这一点?

对于位于条形图下方(位于此类图的较大网格底部)的水平X轴标签的恒定垂直偏移,使用
title
line
属性具有与设备大小无关的一致行为/位置。我现在做的是:

title(xlab=journey, line=0, cex=0.8, font.lab=2, xpd=NA)
其中,
line
是整数,
0
是离绘图最近的,更高的整数离绘图更远(在负Y方向)

对于图例,我无法找到一个独立于网格尺寸或设备大小的恒定垂直偏移。这里有几点:

  • yjust
    图例的参数根本不起作用。我在网上寻找例子,但无论我使用了什么值,
    yjust
    都是不可能的
  • y
    参数确实有效,但遗憾的是,它没有与
    x
    的描述性属性结合使用;也就是说,如果
    x
    设置为
    bottom
    ,则不能同时设置
    y
    。我发现这种行为令人不安,因为我通常认为这些坐标相互独立
为了克服这些限制,我做了以下工作:

yInset <- 0.4 * (1.075 - par("fin")[2] / dev.size("in")[2])
legend(x='bottom', yjust=-0.75, inset=c(0, -yInset), legend=abbrevLabels, fill=c(colors), xpd=NA, horiz=TRUE, bty="n", cex=1.0, adj=0.035, text.width=rep(meanLabelLen/7.5, length(legendLabels)))

yInset你真的应该这样做,这样我们才能理解你想要什么。不幸的是我不能。图表内容是专有的。当然可以,在这种情况下,请考虑。表现出一些努力!:)