Как изменить высоту диаграммы в функции hchart() в R (пакет highcharter) без использования оператора pipe?

Я создал блестящее приложение, в котором создаю сюжет из 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 ответов

Я вижу 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")
Другие вопросы по тегам