簡體   English   中英

使用工具提示的 Highcharter 的 hctreemap2 百分比?

[英]Percentage in hctreemap2 of Highcharter using tooltip?

我用 Highcharter 制作了一個樹狀圖。 由於 map 是交互式的,我希望它同時顯示總數量和每組代表總數的百分比。 我根據此處的其他問題制作了以下 2 個代碼,但兩種方式都顯示百分比為 0.00%。 如何將百分比信息添加到 highcarter 樹圖工具提示?

#Way 1
hctreemap2(data =Objeto,
           group_vars = c("objeto_contratar"),
           size_var = "total",
           color_var = "total",
           layoutAlgorithm = "squarified",
           levelIsConstant = FALSE) %>% 
  hc_colorAxis(minColor = brewer.pal(7, "Blues")[2],
               maxColor = brewer.pal(7, "Blues")[7]) %>%
               hc_tooltip(pointFormat = "Objeto: {point.name} <br>
                            Contratos: {point.value:,.0f} <br>
                            Porcentaje: {point.percentage:.2f} %")  %>% 
  hc_exporting(enabled = TRUE)

#Way 2
hctreemap2(data =Objeto,
           group_vars = c("objeto_contratar"),
           size_var = "total",
           color_var = "total",
           layoutAlgorithm = "squarified",
           levelIsConstant = FALSE) %>% 
  hc_colorAxis(minColor = brewer.pal(7, "Blues")[2],
               maxColor = brewer.pal(7, "Blues")[7]) %>%
  hc_tooltip(formatter = JS("function(){
                                return  '</b>'  + this.point.name + ': <br> Contratos: ' +this.point.value+' <br> Porcentage: '+Highcharts.numberFormat(this.point.percentage)+'%'
  }"),useHTML = FALSE)  %>% 
  hc_exporting(enabled = TRUE)

Could someone tell me how do I get it to display both data (the amount and percentage it represents) on the same graph when I hover over it?

有人幫助了我。 這就是他所做的並且有效。 我希望這對其他人有幫助。

hctreemap2(data =Objeto,
               group_vars = c("objeto_contratar"),
               size_var = "total",
               color_var = "total",
               layoutAlgorithm = "squarified",
               levelIsConstant = FALSE) %>% 
      hc_colorAxis(minColor = pal_azul(7)[1],
                   maxColor = pal_azul(7)[7]) %>% 
      hc_tooltip(formatter = JS('function () {
                            var total = 0;
                            for (var i = 0; i < this.series.data.length; i++)
                            {
                            if (this.series.data[i].node.children.length == 0)
                            total+=this.series.data[i].node.val;
                            }
                            var value;
                            if (this.point.node.children.length == 0)
                            {
                            value = this.point.options.value;
                            }
                            else
                            {
                            value = this.point.node.childrenTotal;
                            }
                            var porcentage = (value / total) *100;
                            return  "</b>"  + this.point.name + ": <br> Contratos: " +this.point.value+" <br> Porcentage: "+Highcharts.numberFormat(porcentage)+"%"
                            }'),useHTML = FALSE)  %>% 
      hc_exporting(enabled = TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM