在 ggplot2 标题表达式中使用带有变量的 italic()

Posted

技术标签:

【中文标题】在 ggplot2 标题表达式中使用带有变量的 italic()【英文标题】:Using italic() with a variable in ggplot2 title expression 【发布时间】:2015-11-02 20:45:26 【问题描述】:

当我使用ggplot2 制作地图并尝试使用expression()italic() 的组合使用字符串将图形标题的一部分斜体化时,我的地图会根据需要显示:

plottitle <- expression(paste('Example map with ', italic('italics')))

crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
states_map <- map_data("state")
map <- ggplot(crimes, aes(map_id = state)) + 
  geom_map(aes(fill = Murder), 
           map = states_map) + 
  expand_limits(x = states_map$long, 
                y = states_map$lat) +
  labs(title = plottitle)

map

但是,当我尝试做同样的事情,但使用对象而不是字符串时,对象不会评估为所需的字符串:

word <- 'italics'
plottitle2 <- expression(paste('Example map with ', italic(word)))

map <- ggplot(crimes, aes(map_id = state)) + 
  geom_map(aes(fill = Murder), 
           map = states_map) + 
  expand_limits(x = states_map$long, 
                y = states_map$lat) +
  labs(title = plottitle2)

map

在应用italic() 之前,如何获取向量word 进行评估?

【问题讨论】:

【参考方案1】:

bquote 或替代应该可以工作,

 a = 'text' 
 plot(1,1, main=bquote(italic(.(a))))
 plot(1,1, main=substitute(italic(x), list(x=a)))

【讨论】:

谢谢你的回答——你能把这个翻译成我上面的例子吗?我正在尝试将word 和“示例地图”粘贴在一起 bquote('Example map with'~italic(.(word))) substitute('Example map with'~italic(x), list(x=word))

以上是关于在 ggplot2 标题表达式中使用带有变量的 italic()的主要内容,如果未能解决你的问题,请参考以下文章

带有 ggplot2 的条形图用于基因表达

ggplot2 - 带有堆栈和闪避的条形图

使用 ggplot2 创建带有形状的图例

带有facet_grid的ggplot2中带有多个分类变量的堆积条形图

ggplot2() 按因子绘制一个变量与自身的关系?

在 R 中使用带有 facet_wrap 的 ggplot2 显示多个轴标签