如何将雷达图表的比例从百分比修改为数值

时间:2016-12-29 18:54:45

标签: javascript d3.js

我正在根据this example创建雷达图表。但是我的数据没有以%表示。它在几分钟内给出。问题是比例自动转换为%,当数据乘以100时,我无法在代码中找到该位置。

这是我的数据集:

      [
        {axis:"AAA",value:2.56},
        {axis:"BBB",value:1.27},
        {axis:"CCC",value:2.01},
        {axis:"DDD",value:2.71}
      ],[
        {axis:"AAA",value:2.28},
        {axis:"BBB",value:1.05},
        {axis:"CCC",value:1.81},
        {axis:"DDD",value:2.30}
      ]
    ];

1 个答案:

答案 0 :(得分:1)

数据不会乘以100,而是在RadarChart.js中将其格式化为百分比:

var Format = d3.format('%');

格式适用于网格:

.text(Format((j+1)*cfg.maxValue/cfg.levels));

这里是鼠标悬停:

.text(Format(d.value))

此外,最外层的值(maxValue)在script.js中设置:

var mycfg = {
  w: w,
  h: h,
  maxValue: 0.6,
  levels: 6,
  ExtraWidthX: 300
}

要显示非百分比数据,您可以重新定义数字格式,例如不指定任何内容:

var Format = d3.format("");

如果您对数字格式不感兴趣,可以完全删除对它的引用。您可以简单地使用Format(d.value)代替d.value。当然,你也需要一些类似于最大值的东西。

在决定如何格式化数字格式后,您仍需要重置maxValue以使用数据集。

注意,如果您的轴是分钟,则d3.format可能不是格式化值的最合适方式。 D3.time.format可能会更好。如果需要,您可以创建自定义函数以输出分钟和秒数。