繁体   English   中英

如何在r绘图轴标签中使用多种字体?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM