Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js d3中的自定义比例_D3.js - Fatal编程技术网

D3.js d3中的自定义比例

D3.js d3中的自定义比例,d3.js,D3.js,d3中有很多scale函数(例如:d3.scale.linear(),d3.scale.sqrt(),d3.scale.log(),…)。但对于特定情况,我需要一个不同的比例函数(精确地说是“”)。有没有办法在d3中定义自定义比例函数?像 function d3.scale.mycustom() { ... } 从数学的角度来看这很容易,但是我如何在d3中实现这一点呢 带着Enche的暗示,我尝试了以下方法: var my_custom_scale = function inte

d3中有很多scale函数(例如:d3.scale.linear(),d3.scale.sqrt(),d3.scale.log(),…)。但对于特定情况,我需要一个不同的比例函数(精确地说是“”)。有没有办法在d3中定义自定义比例函数?像

function d3.scale.mycustom() {
       ...
}
从数学的角度来看这很容易,但是我如何在d3中实现这一点呢

带着Enche的暗示,我尝试了以下方法:

var my_custom_scale = function interpolate(t) {

    var A  = 0;
    var K  = 1;
    var B  = 10;
    var NU = 0.7;
    var Q  = 0.5;
    var C  = 1;

    return A + (K - A) / Math.pow(C + Q * Math.exp(-1 * B * (t - 0.5)), 1 / NU);

}
有效的方法是:

console.log(my_custom_scale(0.0)); // 0.0021
console.log(my_custom_scale(0.1)); // 0.0084
console.log(my_custom_scale(0.2)); // 0.0324
console.log(my_custom_scale(0.3)); // 0.1098
console.log(my_custom_scale(0.4)); // 0.2934
console.log(my_custom_scale(0.5)); // 0.5603
console.log(my_custom_scale(0.6)); // 0.7857
console.log(my_custom_scale(0.7)); // 0.9107
console.log(my_custom_scale(0.8)); // 0.9655
console.log(my_custom_scale(0.9)); // 0.9871
console.log(my_custom_scale(1.0)); // 0.9952

但是,我现在如何将其设置为
d3.scale.my_custom_scale

那篇维基百科文章让我有点难以写出实际的代码,但是:

有没有办法在d3中定义自定义比例函数


是的!看见您可能想要/需要使用,您会经常在定量量表页面上看到它。

Enche,非常感谢。我试过你关于插值函数的暗示。但是我如何构建一个真正的d3比例函数来调用类似于
d3.scale.my_custome_scale