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

时间:2018-11-27 16:44:15

标签: r highcharts shiny r-markdown r-highcharter

我构建了一个Shiny应用程序,其中我从hist()density()对象创建了一些绘图,它们都以列表形式从另一个脚本文件保存到.RDS文件中。因此,在闪亮的情况下,我只阅读.RDS并进行绘制。

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

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

 # 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)

实际上,我还想更改图表的更多选项,例如颜色。但是我找不到找到的解决方案的方法。

谢谢。

Wlademir。

1 个答案:

答案 0 :(得分:1)

我可以看到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")