如何使`bquote`用符号替换存储在变量中的希腊字母?

我想在图上动态标记轴。标签来自数据框,包含希腊字母以及上级/下级。

在静态情况下,我会知道标签的字母,bquote会很好地工作。但是在这种情况下,如果标签字符串来自变量,则bquote会失败。

这展示了我想要实现的目标:

a <- "alpha"
b <- "beta"
ggplot(data.frame(x=c(1),y=c(1)),aes(x,y)) + 
  geom_point() +
  labs(x = bquote(.(a)[.(b)])) + ## will output the greek letters by "name"
  labs(y = bquote(alpha[beta]))  ## the greek letter-names are replaces by the symbols

如何使`bquote`用符号替换存储在变量中的希腊字母?

zcwilove 回答:如何使`bquote`用符号替换存储在变量中的希腊字母?

使用rlang::sym将a和b变量转换为符号。

library("tidyverse")

a <- "alpha"
b <- "beta"

ggplot(data.frame(x = c(1),y = c(1)),aes(x,y)) +
  geom_point() +
  labs(x = bquote(.(sym(a))[.(sym(b))])) +
  labs(y = bquote(alpha[beta]))

reprex package(v0.3.0)于2019-11-04创建

本文链接:https://www.f2er.com/3169814.html

大家都在问