【问题标题】:R universal distance between plot limits and axis labels/titleR绘图限制和轴标签/标题之间的通用距离
【发布时间】:2020-12-25 12:51:35
【问题描述】:

在 R 绘图环境中,有没有办法指定轴标签的位置和轴名称相对于绘图边界的通用距离?例如,考虑以下测试图的 Y 轴:

pdf('test1.pdf',height=3.5,width=5.0)
plot(1,ylab=NA,yaxt='n',ann=F)
mtext('Y-Axis Label',side=2,line=1.5)
axis(2, pos=0.595,tick=F)
dev.off()

我已分别使用mtextaxis 函数中的line=1.5pos=0.595 参数优化了轴标签和轴名称的位置。但是,一旦我生成了一个具有不同宽度的单独图(即width=8.0),该位置就不再类似于我在原始图中使用 5.0 的宽度指定的物理距离。所以问题是 - 我如何指定这些参数,以便标签和名称与图形边界的距离完全相同,而不管绘图宽度如何。这可以使用通用单位(即像素)来指定吗?

提前致谢!

【问题讨论】:

    标签: r plot


    【解决方案1】:

    尝试grconvertX,但您必须跟踪您需要输出的方式。 mtext(..., line = ) 在行中,而 axis(..., pos = ) 期待用户坐标。此外,您还需要在适当的情况下使用grconvertY(即,在第 1 侧和第 3 侧)

    pdf('test1.pdf',height=3.5,width=5.0)
    plot(1,ylab=NA,yaxt='n',ann=F)
    mtext('Y-Axis Label',side=2,line=1.5)
    axis(2, pos=0.595,tick=F)
    
    line <- grconvertX(1.5, 'lines', 'device')
    pos <- grconvertX(0.595, 'user', 'device')
    dev.off()
    
    
    pdf('test1-again.pdf',height=3.5,width=5)
    plot(1,ylab=NA,yaxt='n',ann=F)
    mtext('Y-Axis Label',side=2, line = grconvertX(line, 'device', 'lines'))
    axis(2, pos = grconvertX(pos, 'device', 'user'), tick = FALSE)
    dev.off()
    
    
    pdf('test1-wide.pdf',height=3.5,width=8)
    plot(1,ylab=NA,yaxt='n',ann=F)
    mtext('Y-Axis Label',side=2, line = grconvertX(line, 'device', 'lines'))
    axis(2, pos = grconvertX(pos, 'device', 'user'), tick = FALSE)
    dev.off()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2013-05-01
      相关资源
      最近更新 更多