You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 line
1.3KB

  1. ---
  2. output: js4shiny::html_document_js
  3. ---
  4. ```{r htmldeps, echo=FALSE}
  5. library(htmltools)
  6. tagList(
  7. div(id = "chart"),
  8. htmltools::htmlDependency(
  9. name = "frappe-charts",
  10. version = "1.3.0",
  11. package = "frappeCharts",
  12. src = "htmlwidgets/lib/frappe-charts",
  13. script = "frappe-charts.min.iife.js",
  14. all_files = TRUE
  15. )
  16. )
  17. ```
  18. ```{r data}
  19. data <- list(
  20. labels = rep(c("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"), 4),
  21. datasets = list(
  22. list(name = "Python", values = runif(7 * 4, 0, 50)),
  23. list(name = "R", values = runif(7 * 4, 0, 100))
  24. )
  25. )
  26. opts <- list(
  27. title = "My AwesomeR Chart",
  28. type = "line",
  29. height = 250,
  30. colors = c("#466683", "#44bc96"),
  31. data = data,
  32. lineOptions = list(regionFill = TRUE, hideDots = FALSE),
  33. axisOptions = list(xIsSeries = TRUE),
  34. isNavigable = TRUE
  35. )
  36. tags$script(
  37. id = "chart-opts",
  38. type = "application/json",
  39. htmlwidgets:::toJSON(opts)
  40. )
  41. ```
  42. ```{js}
  43. let x = document.getElementById('chart-opts')
  44. x = JSON.parse(x.textContent)
  45. // const data = {
  46. // labels: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
  47. // datasets: [
  48. // { name: "R", values: [18, 40, 30, 35, 8, 52, 17, -4] },
  49. // { name: "Python", values: [30, 50, -10, 15, 18, 32, 27, 14] }
  50. // ]
  51. // }
  52. const chart = new frappe.Chart("#chart", x)
  53. ```