【问题标题】:Manually set fontsize of axis titles in native-R plot and lattice graphing functions在原生 R 绘图和点阵绘图函数中手动设置轴标题的字体大小
【发布时间】:2018-10-23 01:56:13
【问题描述】:

我正在尝试为海报演示准备图表,但我对 plot 中本应简单的事情有多么困难感到非常沮丧。我想从混合效应模型中绘制一个残差 qq 图。我要做的就是更改轴标题的字体大小

。这是一个可重现的示例。

library(lme4)
library(lattice)



fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)

qqmath(fm1,
       main = list("QQ-Plot", cex = 2),
       id=0.05, 
       cex = list(x = 2),
       scales = list(x = list(cex = 2), y = list(cex = 2)))

这一切都很好。但是当我尝试增加轴标题的字体大小时

qqmath(fm1,
       main = list("QQ-Plot", cex = 2),
       xlab = list("x-axis", cex = 2),
       id=0.05, 
       cex = list(x = 2),
       scales = list(x = list(cex = 2), y = list(cex = 2)))

我明白了

Error in qqmath.formula(x = ~x, ylab = "Standardized residuals", xlab = "Standard normal quantiles",  : 
  formal argument "xlab" matched by multiple actual arguments

我从this 帖子中收集到这是由于函数调用中的竞争参数和原始qqmath.formula 对象中的一些省略号,但肯定有 是一种更简单的设置方法轴标题的字体大小比重新编程原始函数?!

【问题讨论】:

  • 如果您输入:methods(qqmath),您应该会看到 qqmath.formula 可能不是被调用的函数。在查看了我认为更有可能由lmer 发送的代码之后,我怀疑您对重新标记 y 轴的更简单方法的信心是错误的。您应该包括所需的library 调用。目标也不清楚:是字体大小还是hte标签的文本应该改变?
  • 字体大小。文本本身并不重要。你的意思是library(lattice)library(lme4)
  • 我的意思是两者
  • 我已经添加了库调用

标签: r


【解决方案1】:

lattice系统有trellis.par.gettrellis.par.set这两个函数,可以用来控制xlab和ylab组件的字体大小:

?trellis.par.get
 names( trellis.par.get() )
 trellis.par.set(par.ylab.text=list(cex=.5))
 qqmath(fm1,
       main = list("QQ-Plot", cex = 2),       id=0.05, 
       cex=list(left=.55,bottom=.5), 
       scales = list(x = list(cex = 1), y = list(cex = 1)))

... 减小 ylab 的大小。您可以在 Sarkar 的“Lattice”一书的第 127 页上的图表中找到更完整的组件和功能列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 2012-09-12
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多