2017-07-06 58 views
0

我想在更高的地图上更改图例的标签格式。我的价值从0到2000亿不等。第一步,即千(k)和百万(M)都很好,但我需要更改十亿字“G”的缩写。Highcharter/Highmap:更改数十亿的图例标签格式

我不是很擅长JavaScript,因此我不知道如何在hc_legend()函数中编写格式命令,将“G”改为“B”,而将“k”改为“ M“为百万。

下面是一个小例子,其中人们可以看到highcharter对数十亿使用“G”。

library(highcharter) 

df = data.frame(
    Country = c("AT","BE","CH","DE","FR","IT"), 
    variable = rnorm(n = 6, mean = 120000000000, sd = 20000000000) 
) 


hcmap(map = "custom/europe", 
     data = df, joinBy = c("hc-a2", "Country"), value = "variable", name = "variable", 
     dataLabels = list(enabled = TRUE, format = '{point.name}'), 
     borderColor = "#FAFAFA", borderWidth = 0.1, 
     tooltip = list(valueDecimals = 0, valuePrefix = "€", valueSuffix = "")) %>% 
    hc_mapNavigation(enabled = TRUE) 
    #hc_legend(enabled = TRUE, format = "{value}B") #basically a placeholder, as I dont know how to proceed 
+0

看起来您应该将一个贴标签传递给'hc_legend'来创建可读的数字。 –

+0

我不知道我是否正确,但数字是完全可读的。 Highcharter(或highcharts)在某些步骤中修剪数字并在其后面放置“k”,“M”和“G”已经做得很好。我只是想把“G”改成“B”。 –

+2

要更改缩放后缀,您可以操作'lang.numericSymbols' - http://api.highcharts.com/highcharts/lang.numericSymbols。但是,不知道你是如何将它传递给高手的。 – wergeld

回答

1

改变 'G' 到 'B' 必须做如下:

hcoptslang <- getOption("highcharter.lang") 
hcoptslang$numericSymbols <-c("k", "M", "B" ,"T", "P" ,"E") 
options(highcharter.lang = hcoptslang) 

通过您更改数字小符号为highcharter。 PS:感谢@wergeld和@RomanLuštrik的指导。

+0

工程就像一个魅力!谢谢! –