使用 stripplot 时隐藏 x 轴?

Hidding x axis when using stripplot?

我正在尝试创建一个 stripplot,其中 x 轴上的参数名称是希腊字母。那么我希望我的情节用希腊字母而不是 "theta"、"rho" 和 "tau" 下标来标记是很合乎逻辑的。我的策略是隐藏原始标签并在顶部绘制希腊字母。以下示例显示了我到目前为止所做的尝试:

library(lattice)

data <- data.frame(Parameters=c("theta","rho","tau"),val1=c(1,2,4),val2=c(2,3,4))

png("plot.png")
stripplot(val1 + val2 ~ Parameters, data = data, pch=c(1,2), cex=2,
      scales=list(cex=c(0,1.5)),
      xlab=c(expression(rho),expression(tau),expression(theta)),
      ylab=NULL,
      xaxt='n',

)
dev.off()

但是这段代码也奇怪地消除了 y 轴上的标签。

尝试 1:

我也遵循了 How to hide x-axis in lattice R 中的建议,但结果保留了 x 轴中的名称。

尝试 2:

如何在不改变 y 轴的情况下只删除 x 轴上的标签?

library(lattice)

data <- data.frame(Parameters=c("theta","rho","tau"),val1=c(1,2,4),val2=c(2,3,4))

png("plot.png")
stripplot(val1 + val2 ~ Parameters, data = data, pch=c(1,2), cex=2,
          scales=list(cex=c(0,1.5)),
          xlab=c(expression(rho),expression(tau),expression(theta)),
          xaxt='n',

)
dev.off()

查看 ?stripplot 的帮助页面,尤其是 scales 参数。

Generally a list determining how the x- and y-axes (tick marks and labels) are drawn.

因此使用此参数传递 x 轴的大小和标签参数。

stripplot(val1 + val2 ~ Parameters, data = dat, pch=c(1,2), cex=2,
   scales=list(x=list(cex=1.5, 
                      labels=c(expression(rho),expression(tau),expression(theta))
)))

这很笨重,但如果您有很多 x 轴元素,将会有所帮助。

labels=as.expression(sapply(levels(dat$Parameters), function(x)  as.name(x)))

labels=parse(text=as.character(sort(dat$Parameters)))