首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >d3:如何插值字符串(其中包含数字),使数字不被内插

d3:如何插值字符串(其中包含数字),使数字不被内插
EN

Stack Overflow用户
提问于 2015-04-23 03:00:14
回答 1查看 726关注 0票数 3

我是javascript方面的新手,但几周前,我刚刚钻研了d3.js,试图创建时空可视化。

我想要实现的是这样的东西(https://jsfiddle.net/dmatekenya/mz5fxd44/),基于下面所示的代码:

代码语言:javascript
复制
var w1 = ["Dunstan","Mercy","Lara","Khama"];
var w2 =["August 1,2013","August 2,2013","August 3,2013"]
var text = d3.select("body")
            .attr("fill","red")
            .text("Dunstan")
            .attr("font-size", "50px");  
var j = 0;
var transition = function() {
return text.transition().duration(500).tween("text", function() {
   var i = d3.interpolateString(w1[j], w1[j + 1]);
   return function(t) {
    this.textContent = i(t);
  };
}).each('end', function() {
  j += 1;
  if (!(j > w1.length)) return transition();
});
};
transition();

但是,我想使用日期字符串(就像上面代码片段中的w2 )。当我这样做时,d3也会插入字符串中嵌入的数字,输出也不是我想要的。我需要帮助,我如何能够以某种方式创建一个自定义内插器,它可以插值日期字符串,同时忽略它们中的数字。我从d3文档(https://github.com/mbostock/d3/wiki/Transitions#tween)中了解到,可以将自定义内插器推到内插器的d3数组中,但我已经尝试过,但仍然无法使其工作。

需要你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-05-17 09:01:26

也许你需要d3.scaleQuantize()

例如:

代码语言:javascript
复制
var color = d3.scaleQuantize()
    .domain([0, 1])
    .range(["brown", "steelblue"]);

color(0.49); // "brown"
color(0.51); // "steelblue"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29812837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档