如何将代码块分配给 ggvis 中的对象?

How do I assign chunks of code to objects in ggvis?

我正在开发一个闪亮的应用程序,我认为通过在单独的 R 文件上为我的 ggvis 主题创建一种样式表来整理我的代码可能是个好主意。然后我想在主 server.R 脚本

中需要时调用 "styling-chunks"

这是一个示例条形图:

cars %>%
  distinct(speed) %>% 
  filter(speed<10) %>% 
  ggvis(x=~speed, y=~dist) %>%
  layer_bars(fill:="#73879C", stroke:="#73879C") 

我想链接以下代码

add_axis("y", title = "", grid=FALSE,
           properties= axis_props(
             labels = list(
               fill="#777"
             ),
             axis = list(stroke = "#fff")
           ))

我想我可以将 add_axis 分配给一个对象,然后链接该对象,但它不起作用。这就是我的意思:

eliminateGrid <- function(x){add_axis("y", title = "", grid=FALSE,
           properties= axis_props(
             labels = list(
               fill="#777"
             ),
             axis = list(stroke = "#fff")
           ))}


cars %>%
      distinct(speed) %>% 
      filter(speed<10) %>% 
      ggvis(x=~speed, y=~dist) %>%
      layer_bars(fill:="#73879C", stroke:="#73879C") %>%
  eliminateGrid() 

我欢迎任何反馈,不仅是关于我的代码不起作用的原因,还有关于我的方法是否有任何意义的反馈。

我们需要创建一个函数,将 vis 对象传递给 add_axis():

eliminateGrid <- function(vis){
  add_axis(vis = vis, type = "y", title = "", grid = FALSE,
           properties= axis_props(
             labels = list(
               fill="#777"),
             axis = list(stroke = "#fff")
           ))
  }