我想在我的flexdashboard上使用的高跳圖懸停上顯示其他數據系列。我明白要做到這一點的方法是使用highcharts的'formatter'函數。我已經能夠將附加系列存儲在我的系列數據中的一個隨機變量中,並使用格式化函數調用它,但是我可以在我的highcharts圖中獲得每個條的完整列表。我需要每個點的個人價值觀。R HIGHCHARTER - 如何在高圖懸停上顯示其他系列值?
下面的代碼:
highchart() %>%
hc_chart(type = "bar") %>%
hc_title(text = "Bottom Five Suppliers (Overall)") %>%
hc_xAxis(categories = suppliers$Supplier[20:24], tickInterval = 1) %>%
hc_yAxis(tickInterval = 1) %>% hc_add_series(data = suppliers$x[20:24],
name = "Overall Supplier Score (Weighted)", resp = suppliers$respondents[20:24]) %>%
hc_tooltip(valueDecimals = 2, useHTML = TRUE, formatter = JS("function()
{return this.series.options.resp;}"))
%>% hc_exporting(enabled = TRUE) %>% hc_plotOptions(
series = list(
boderWidth = 0,
dataLabels = list(enabled = TRUE)
))
這是結果:
正如你可以看到,上懸停在圖表上來的數據大於x或y軸不同。但是,它將顯示所有5個欄的完整數據,而不是顯示每個欄的一個值。
我知道我需要編寫一個JavaScript函數來匹配其餘數據框的值,但我不知道該怎麼做(因爲我沒有太多經驗或對JS的知識,可悲)。
如果我使用一個在x或y軸上使用的系列,那麼它可以正常工作(使用this.x或this.y),但是如果沒有this.series,則使用存儲在隨機變量中的附加系列不起作用。 options.seriesname,然後它也返回整個系列。
編輯
這裏重現這個例子的代碼:
library (highcharter)
library (dplyr)
Suppliers= data.frame(Supplier = c('one','two','three','four','five'),
Value = c(1,2,3,4,5), respondents= c(5,1,4,12,5),
Category = c('cat1','cat2','cat3','cat4','cat5'))
highchart() %>%
hc_chart(type = "bar") %>%
hc_title(text = "Bottom Five Suppliers (Overall)") %>%
hc_xAxis(categories = Suppliers$Supplier, tickInterval = 1) %>%
hc_yAxis(tickInterval = 1) %>% hc_add_series(data = Suppliers$Value,
name = "Overall Supplier Score (Weighted)", resp = Suppliers$respondents) %>%
hc_tooltip(valueDecimals = 2, useHTML = TRUE, formatter = JS("function()
{return this.series.options.resp;}"))
%>% hc_plotOptions(
series = list(
boderWidth = 0,
dataLabels = list(enabled = TRUE)
))
當你將鼠標懸停在生產highchart,它顯示了完整系列的受訪者,而不是它顯示單個值。
如果您可以生成一個可重複的例子將更容易幫助你。 – jbkunst
@jbkunst謝謝你的迴應!我已經更新了這個問題以包含一個可重複的例子。 – NinjaElvis