Как построить Highcharter рядом в RStudio Viewer? - PullRequest
0 голосов
/ 27 апреля 2020

Я хотел видеть точный вывод графика Highcharter бок о бок в RStudio Viewer, если это возможно, точно показано в этой ссылке: http://jkunst.com/highcharter/highcharts.html, поэтому позвольте мне определить это так для простого Использование

highcharter_all_plot <- function(){
  library(highcharter)
  library(dplyr)
  library(stringr)
  library(purrr)
  n <- 5
  set.seed(123)
  colors <- c("#d35400", "#2980b9", "#2ecc71", "#f1c40f", "#2c3e50", "#7f8c8d")
  colors2 <- c("#000004", "#3B0F70", "#8C2981", "#DE4968", "#FE9F6D", "#FCFDBF")

  df <- data.frame(x = seq_len(n) - 1) %>% 
    mutate(
      y = 10 + x + 10 * sin(x),
      y = round(y, 1),
      z = (x*y) - median(x*y),
      e = 10 * abs(rnorm(length(x))) + 2,
      e = round(e, 1),
      low = y - e,
      high = y + e,
      value = y,
      name = sample(fruit[str_length(fruit) <= 5], size = n),
      color = rep(colors, length.out = n),
      segmentColor = rep(colors2, length.out = n)
    )

  print(head(df))

  create_hc <- function(t) {
    dont_rm_high_and_low <- c("arearange", "areasplinerange",
                              "columnrange", "errorbar")
    is_polar <- str_detect(t, "polar")
    t <- str_replace(t, "polar", "")
    if(!t %in% dont_rm_high_and_low){
      df <- df %>% dplyr::select(-e, -low, -high)
    } 
    highchart() %>%
      hc_title(text = paste(ifelse(is_polar, "polar ", ""), t),
               style = list(fontSize = "15px")) %>% 
      hc_chart(type = t,
               polar = is_polar) %>% 
      hc_xAxis(categories = df$name) %>% 
      hc_add_series(df, name = "Fruit Consumption", showInLegend = FALSE) 
  }

  hcs <- c("line", "spline",  "area", "areaspline",
           "column", "bar", "waterfall" , "funnel", "pyramid",
           "pie" , "treemap", "scatter", "bubble",
           "arearange", "areasplinerange", "columnrange", "errorbar",
           "polygon", "polarline", "polarcolumn", "polarcolumnrange",
           "coloredarea", "coloredline")  %>% map(create_hc) 
  return(hcs)
}

x <- highcharter_all_plot()

#Then plot can be accessed in by calling x[[1]], x[[2]], x[[3]]..

Насколько я понимаю параллельный сюжет, я знаю только 2 этих удобных метода, а именно:

1) Использование par (mfrow)

par(mfrow=c(3,4)) -> (который может применяться только к базовому графику)

2) Использование grid.arrange из gridExtra

library(gridExtra)
grid.arrange(x[[1]], x[[2]], x[[3]], x[[4]], nrow=2, ncol=2)

-> (Невозможно работать, поскольку x не является ggplot типа)

Итак, я хотел знать, есть ли способ, которым это может быть применено? Я новичок в использовании Highcharter

1 Ответ

0 голосов
/ 29 апреля 2020

Если вы проверите веб-сайт Highcharter, который вы предоставили, вы увидите, что эти диаграммы не соседствуют с помощью R, а просто отображаются в отдельных контейнерах HTML и располагаются как bootstrap (CSS). Итак, если вы хотите визуализировать свои диаграммы в среде HTML, я предлагаю рендерить каждую диаграмму в отдельный div.

Но, возможно, Shiny - это инструмент, который вы ищете. Может быть, это дубликат вывода Shiny Rcharts для нескольких графиков

Может быть, это вам тоже поможет: https://github.com/jbkunst/highcharter/issues/37

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...