最终目标是创建一个闪亮的应用程序,其中用户输入字符串以“panel.grid.minor = element_line(colour = 'red')”格式返回,并更新ggplot主题。因此,我试图解析此字符串以更新主题。
这是最初的情节:
library(ggplot2)
library(rlang)
theme_set(theme_dark())
ggplot(mpg, aes(displ, hwy, colour = class))+
geom_point()
在这个简化的例子中,我想动态地将次要网格线更改为红色。这是我到目前为止使用parse_expr()
和eval_tidy()
不起作用的。任何帮助都将非常感谢,谢谢!
library(ggplot2)
library(rlang)
theme_set(theme_dark())
x <- "panel.grid.minor = element_line(colour = 'red')"
theme_update(eval_tidy(parse_expr(x)))
ggplot(mpg, aes(displ, hwy, colour = class)) +
geom_point()
2条答案
按热度按时间v1l68za41#
在Twitter的帮助下,我找到了一个解决方案!
单参数(panel.grid.minor)
多个参数(panel.grid.minor & panel.background)
eufgjt7s2#
不使用
rlang
的一个稍微不同的选项是使用基本的eval
和parse
选项,如下所示:创建于2023-04-06带有reprex v2.0.2