【问题标题】:paste + italics with two vectors带有两个向量的粘贴 + 斜体
【发布时间】:2019-02-15 18:39:09
【问题描述】:

我有两个向量 - 向量 varnames 包含变量的名称,向量 descs 包含它们的描述。我想paste0 他们在一起,但在条形图中的描述是斜体的。

我现在有这个:

labels <- paste0(varnames, "\n", descs)

但我想要类似的东西

labels <- paste0(varnames, "\n", italic(descs))

我对@9​​87654327@ 和substitute 很熟悉,但我不知道如何使用它们。

编辑:我熟悉如何处理两个字符串。我的问题是关于两个向量。

【问题讨论】:

标签: r


【解决方案1】:

假设varmanesdescs 的一些值:

varnames = c("a", "b", "c")
descs = c("desc a", "desc b", "desc c")

然后您可以使用parse 函数获取字符串的表达式:

gsub(" ", "~", descs) %>% 
  paste('"',varnames, '\n "*italic(',.,')', sep = "") %>%
   parse(text = .) -> eNames

eNames
#expression("a
# "*italic(desc~a), "b
# "*italic(desc~b), "c
# "*italic(desc~c))

请注意,我使用dplyr 的管道(即%&gt;%)只是为了代码清晰。这是使用上述结果和ggplot的示例:

df <- data.frame(dose=c("D0.5", "D1", "D2"),
                 len=c(4.2, 10, 29.5))

ggplot(data=df, aes(x=dose, y=len)) +
  geom_bar(stat="identity") + 
  scale_x_discrete(labels = eNames) +
  theme(text = element_text(size = 20)) +
  coord_flip() +
  labs(x = '')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多