Гистограмма гиперссылки в Highcharter

У меня возникают проблемы при воссоздании этого ответа в R с помощью Highcharter, чтобы превратить столбцы в столбчатой ​​диаграмме в кликабельные URL-адреса. Вот код Javascript из ответа. У Highcharter есть виньетка о воссоздании Javascript, которой я пытался следовать. Вот что попробовал до сих пор. Это не показывает ни одного из баров.

library(tidyverse)
library(highcharter)

highchart() %>%
  hc_chart(type = "column") %>%
  hc_title(text = "Click points to go to URL") %>%
  hc_xAxis(type = "category") %>%
  hc_plotOptions(series = list(cursor = "pointer"),
                 point =
                   list(events = list(
                     click = JS(
                       "function () {
                       location.href = 'https://en.wikipedia.org/wiki/' +
                       this.options.key;
                       }"
                     )
                     ))) %>%
  hc_series(
    list(name = "USA", key = "United_States", y = 29.9),
    list(name = "Canada", key = "Canada", y = 71.5),
    list(name = "Mexico", key = "Mexico", y = 106.4)
  )

1 ответ

Решение

Эндрю,

У вас есть (2) ошибки, повторяющие пример:

  1. Если вы внимательно проверьте пример, который вы дали. point Аргумент живет на той же глубине cursor в series аргумент.
  2. Вы не добавили данные правильно (например, показ виньеток).

Фиксированная версия вашего кода:

highchart() %>%
  hc_chart(type = "column") %>%
  hc_title(text = "Click points to go to URL") %>%
  hc_xAxis(type = "category") %>%
  hc_plotOptions(
    series = list(
      cursor = "pointer",
      point = list(
        events = list(
          click = JS( "function () { location.href = 'https://en.wikipedia.org/wiki/' + this.options.key; }")
          )
        )
      )
    ) %>%
  hc_series(
    list(
      data = list(
        list(name = "USA", key = "United_States", y = 29.9),
        list(name = "Canada", key = "Canada", y = 71.5),
        list(name = "Mexico", key = "Mexico", y = 106.4)
        )
      )
  )

И лучшей версией для добавления данных будет:

dat <- data.frame(
  country = c("USA", "Canada", "Mexico"),
  url = c("United_States", "Canada", "Mexico"),
  value = c(29.9, 71.5, 106.4)
)

highchart() %>%
  hc_xAxis(type = "category") %>%
  hc_plotOptions(
    series = list(
      cursor = "pointer",
      point = list(
        events = list(
          click = JS( "function () { location.href = 'https://en.wikipedia.org/wiki/' + this.options.key; }")
          )
        )
      )
    ) %>%
  hc_add_series(data = dat, type = "column", mapping = hcaes(name = country, key = url, y = value))

Надеюсь, это помогает

Другие вопросы по тегам