如何在不使用管道运算符的情况下更改 R(highcharter 包)中 hchart() 函数的图表高度?

How to change chart height in hchart() function in R (highcharter package) without using pipe operator?

我构建了一个闪亮的应用程序,我在其中从 hist()density() 对象创建了一些绘图,它们都保存在列表中,从另一个脚本文件保存到 .RDS 文件中。所以,在 shiny 我只读了 .RDS 并制作了情节。

现在一切正常,除了我没有找到如何使用 hchart() 函数更改高图图的高度。在我的代码中,按照它的构建方式,我无法使用管道“%>%”,因为我在 purrr::map() 函数中使用 hchart

为了更好地解释,我创建了一个小示例,如下所示。

 # Example of how the objects are structured
        list <-
          list(df1 = list(Sepal.Length = hist(iris$Sepal.Length, plot = FALSE)),
               df2 = list(Sepal.Length = density(iris$Sepal.Length)))

 # Example of a plot built with hchart function
        list[['df2']]['Sepal.Length'] %>% 
        purrr::map(hchart, showInLegend = FALSE)

 # Example of what does not work
        list[['df2']]['Sepal.Length'] %>% 
        purrr::map(hchart, showInLegend = FALSE, height = 200)

其实我也想改变图表的更多选项,比如颜色。但是我没有找到我找到的解决方案的方法。

提前致谢。

弗拉基米尔。

我可以看到 2 种主要方法来满足您的需求(不确定为什么不能使用管道):

选项 1

创建一个函数来处理每个数据并在该函数中添加选项:

get_hc <- function(d) {
  hchart(d, showInLegend = FALSE) %>%
    hc_size(heigth = 200) %>%
    hc_title(text = "Purrr rocks")
} 

然后:

 list_of_charts <- list[['df2']]['Sepal.Length'] %>% 
        purrr::map(get_hc)

选项 2

可以连续使用purrr::map:

list_of_charts <- list[['df2']]['Sepal.Length'] %>% 
    purrr::map(hchart, showInLegend = FALSE)

# change heigth
list_of_charts <- purrr::map(list_of_charts, hc_size, height = 200)

# change title
list_of_charts <- purrr::map(list_of_charts, hc_title. text = "Purrr rocks")

或者你可以连续使用purrr::map/%>%组合:

list_of_charts <- list[['df2']]['Sepal.Length'] %>% 
    purrr::map(hchart, showInLegend = FALSE) %>%
    purrr::map(hc_size, height = 200) %>%
    purrr::map(hc_title, text = "Purrr rocks")