我构建了一个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。
答案 0 :(得分:1)
我可以看到2种主要方法来完成所需的工作(不确定为什么不能使用管道):
创建一个函数来处理所有数据并在该函数内添加选项:
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)
您可以连续使用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")