我正在根据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}
]
];
答案 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可能会更好。如果需要,您可以创建自定义函数以输出分钟和秒数。