[英]how to use multiple fonts in r plot axis-labels?
我正在自定义图的x轴标签。 每个标签包含几个值和几个字符,其中一个(x)应该用斜体表示。 尽管标签的内容仅以常规字体显示,但此代码可以正常工作:
df <- data.frame(sp=c('a', 'b', 'c', 'd', 'e'), n=c(1, 2, 3, 4, 5))
labels <- c()
for(i in 1:nrow(df)){
labels[i] = paste(df$sp[i], '\n(x = ', df$n[i], ')', sep = '')
}
plot(df$n, df$sp, xaxt = 'n')
axis( 1, at = seq( 1, nrow(df) ), labels = labels)
如何将字符x
变为斜体? 例如,此调用substitute
无效:
substitute(paste(df$sp[i], italic('\n(x = '), df$n[i], ')', sep = ''), list(df$sp=df$sp, df$n=df$n) )
一种解决方案是为每个标签调用一次axis
,并使用atop()
而不是\\n
plot(df$sp, df$n, xaxt = 'n')
axis(1, at = 1:nrow(df), labels = rep("", nrow(df)))
labels <-sapply(1:nrow(df), function(i){
axis( 1, at = i, line = 2, lty = 0,
labels = bquote(atop(.(as.character(df$sp[i])),.("(")~italic(x)~"="~.(i)~")")))
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.