D3.js D3js蜘蛛/雷达图上的反向数字顺序,从大到小
我正在使用以下代码创建蜘蛛图:。在我需要创建的图表中,我需要颠倒数字的顺序,比如100%,实际上是中间的点,0%是外部的点。请查看此屏幕截图以更好地了解我正在尝试做的事情:。最大数(7)在图的中间,而较小的数(1)在图的结尾。 我在网上看到我可以反转刻度的范围。我试过了,但没用。我不知道从这里到哪里去D3.js D3js蜘蛛/雷达图上的反向数字顺序,从大到小,d3.js,charts,axis,D3.js,Charts,Axis,我正在使用以下代码创建蜘蛛图:。在我需要创建的图表中,我需要颠倒数字的顺序,比如100%,实际上是中间的点,0%是外部的点。请查看此屏幕截图以更好地了解我正在尝试做的事情:。最大数(7)在图的中间,而较小的数(1)在图的结尾。 我在网上看到我可以反转刻度的范围。我试过了,但没用。我不知道从这里到哪里去 我是D3新手,任何帮助都将不胜感激!谢谢大家! 我刚刚检查了您提到的示例。我对它的代码做了一些修改(Radarchart.js是您需要调整的文件)。但是,此更改只会反转%格式的文本值(就像您要求的
我是D3新手,任何帮助都将不胜感激!谢谢大家! 我刚刚检查了您提到的示例。我对它的代码做了一些修改(
Radarchart.js
是您需要调整的文件)。但是,此更改只会反转%
格式的文本值(就像您要求的那样)。但是,我要警告您,更改默认显示顺序将导致错误的数据解释。因此,请确保您也更改了受影响的区域。我已经为你创建了一支笔,这样你就可以调整,直到你得到想要的结果。以下是已更改的代码,以便您知道:)
Radarchart.js
//Text indicating at what % each level is
var t = [];
for (var j = (cfg.levels - 1);
(j < cfg.levels && j >= 0); j--) {
t.push(cfg.factor * radius * ((j + 1) / cfg.levels))
}
for (var j = (cfg.levels - 1);
(j < cfg.levels && j >= 0); j--) {
var levelFactor = t[j];
g.selectAll(".levels")
.data([1]) //dummy data
.enter()
.append("svg:text")
.attr("x", function(d) {
return levelFactor * (1 - cfg.factor * Math.sin(0));
})
.attr("y", function(d) {
return levelFactor * (1 - cfg.factor * Math.cos(0));
})
.attr("class", "legend")
.style("font-family", "sans-serif")
.style("font-size", "10px")
.attr("transform", "translate(" + (cfg.w / 2 - levelFactor + cfg.ToRight) + ", " + (cfg.h / 2 - levelFactor) + ")")
.attr("fill", "#737373")
.text(Format((j + 1) * cfg.maxValue / cfg.levels));
}
//指示每个级别的百分比的文本
var t=[];
对于(var j=(cfg.levels-1);
(j=0;j--){
t、 推力(cfg系数*半径*((j+1)/cfg水平))
}
对于(var j=(cfg.levels-1);
(j=0;j--){
var水平因子=t[j];
g、 选择全部(“.levels”)
.data([1])//伪数据
.输入()
.append(“svg:text”)
.attr(“x”,函数(d){
返回水平因子*(1-cfg.factor*Math.sin(0));
})
.attr(“y”,函数(d){
返回水平因子*(1-cfg.factor*Math.cos(0));
})
.attr(“类”、“图例”)
.style(“字体系列”、“无衬线”)
.style(“字体大小”,“10px”)
.attr(“transform”、“translate”(+(cfg.w/2-levelFactor+cfg.ToRight)+)、“+(cfg.h/2-levelFactor)+”)
.attr(“填充”,“#737373”)
.text(格式((j+1)*cfg.maxValue/cfg.levels));
}
指向钢笔的链接: