【问题标题】:Highcharter/Highmap: change legend label format for billionsHighcharter/Highmap:更改数十亿的图例标签格式
【发布时间】:2017-12-10 10:07:27
【问题描述】:

我想更改高级地图中图例的标签格式。我的值从 0 到 2000 亿不等。第一步,即千(k)和百万(M)都可以,但我需要更改十亿“G”的缩写。

我不是很擅长 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

【问题讨论】:

  • 看起来您应该将标签器传递给hc_legend 以创建人类可读的数字。
  • 我不知道我是否理解正确,但这些数字完全可读。 Highcharter(或highcharts)在某些步骤中修剪数字并将“k”、“M”和“G”放在它们后面已经做得很好了。我只是想把“G”改成“B”。
  • 要更改比例后缀,您可以操作 lang.numericSymbols - api.highcharts.com/highcharts/lang.numericSymbols。但是,不确定如何将其传递给 highcharter。
  • @wergeld 喜欢这样吗? stackoverflow.com/questions/25266392/…
  • @RomanLuštrik,也许吧。我没有时间尽可能多地使用 R。

标签: javascript r highcharts r-highcharter


【解决方案1】:

将“G”改为“B”必须按以下步骤进行:

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

您可以更改 highcharter 的数字符号。

PS:感谢@wergeld 和@Roman Luštrik 的指导。

【讨论】:

  • 像魅力一样工作!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2017-12-24
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多