R 创建混合斜体和普通字体的轴值

R 创建混合斜体和普通字体的轴值,r,R,我试图创建一个图,其中轴值是类别名称,名称是斜体,后面是一些文本和括号内的数字。每个轴值的类别名称和编号都不同。例如,我会有“狗(宠物1)”,“猫(宠物2)”。对于轴的标签,我已经查看了许多其他示例,但没有查看轴的labels参数。我有点卡住了 par(mar=c(5,8,1,1)) plot(NA, xlim=c(0,5), ylim=c(1,5), ylab="", xlab="", axes=F) axis(1) pet <- c("Dog", "Cat", "Goldfish",

我试图创建一个图,其中轴值是类别名称,名称是斜体,后面是一些文本和括号内的数字。每个轴值的类别名称和编号都不同。例如,我会有“狗(宠物1)”,“猫(宠物2)”。对于轴的标签,我已经查看了许多其他示例,但没有查看
轴的labels参数
。我有点卡住了

par(mar=c(5,8,1,1))
plot(NA, xlim=c(0,5), ylim=c(1,5), ylab="", xlab="", axes=F)
axis(1)
pet <- c("Dog", "Cat", "Goldfish", "Dog", "Rabbit")
number <- 1:5
formatted <- paste("italic(", pet, ")~(Pet ", number, ")", sep="")
axis(2, labels=sapply(formatted, as.expression), at=1:5, las=2)

建议?

格式更改为列表并使用
bquote
。然后,您可以通过
do.call
计算表达式列表

par(mar=c(5,8,1,1))
plot(NA, xlim=c(0,5), ylim=c(1,5), ylab="", xlab="", axes=F)
axis(1)
pet <- c("Dog", "Cat", "Goldfish", "Dog", "Rabbit")
number <- 1:5
formatted <- lapply(1:5, function(i) bquote(paste(italic(.(pet[i]))~"(Pet", .(number[i]), ")", sep="")))
axis(2, labels=do.call(expression, formatted), at=1:5, las=2)
par(mar=c(5,8,1,1))
绘图(NA,xlim=c(0,5),ylim=c(1,5),ylab=“”,xlab=“”,轴=F)
轴(1)

没问题。通过搜索“axis tick label”,您可能会更幸运地在谷歌上搜索答案。
par(mar=c(5,8,1,1))
plot(NA, xlim=c(0,5), ylim=c(1,5), ylab="", xlab="", axes=F)
axis(1)
pet <- c("Dog", "Cat", "Goldfish", "Dog", "Rabbit")
number <- 1:5
formatted <- lapply(1:5, function(i) bquote(paste(italic(.(pet[i]))~"(Pet", .(number[i]), ")", sep="")))
axis(2, labels=do.call(expression, formatted), at=1:5, las=2)