我有我的轴刻度:
axis(4,at=c(1.6526,1.9720,2.6009,3.3403),las=1)
Run Code Online (Sandbox Code Playgroud)
现在我想标记它们.文字应该是这样的:
labels=c("alpha=0.1","alpha=0.05","alpha=0.01","alpha=.001")
Run Code Online (Sandbox Code Playgroud)
但我希望alpha看起来像希腊字符.谢谢!
你可以使用 expression无需使用paste
axis(4,at=c(0.75,1.75),labels=c(expression(alpha==0.1),expression(alpha==0.2)),las=1)
Run Code Online (Sandbox Code Playgroud)
如果有一些标签,手工制作这些都是可以的,但是很乏味而且没有自动化.有一些方法可以将单个表达式组合成表达式"vector",并且我们可以自动构建单个表达式.这是一种方法,我忘记了是否有其他方式,或者即使这是规范的方式(一般问题已经在StackOverflow [包括我!]之前被询问和回答,但我在一个非常快速的搜索中找不到它).
op <- par(mar = c(5,4,4,6) + 0.1)
plot(1:10)
axis(1)
labs <- lapply(alpha, function(x) bquote(alpha == .(x)))
axis(4, at = seq(1, by = 2, length = 5),
labels = do.call(expression, labs), las = 1)
par(op)
Run Code Online (Sandbox Code Playgroud)
哪个产生

我把舞台分开了.首先是
> labs <- lapply(alpha, function(x) bquote(alpha == .(x)))
> labs
[[1]]
alpha == 0.1
[[2]]
alpha == 0.05
[[3]]
alpha == 0.01
[[4]]
alpha == 0.005
[[5]]
alpha == 0.001
Run Code Online (Sandbox Code Playgroud)
它产生一个调用列表.
第二步是将这些组合成一个表达式,我这样做 do.call()
> do.call(expression, labs)
expression(alpha == 0.1, alpha == 0.05, alpha == 0.01, alpha ==
0.005, alpha == 0.001)
Run Code Online (Sandbox Code Playgroud)
你当然可以结合这些:
labs <- do.call(expression, lapply(alpha, function(x) bquote(alpha == .(x))))
axis(4, at = seq(1, by = 2, length = 5),
labels = labs, las = 1)
Run Code Online (Sandbox Code Playgroud)