了解D3域和范围

时间:2017-03-23 10:32:50

标签: d3.js

我的温度范围是33到64华氏度。我试图找出横跨600像素的y轴59度的像素位置。这是一个柱形图。

完全披露,这是我一直在努力解决的功课,而且还没有弄明白。

var scale = d3.scale.linear().domain([33,64]).range([0,64]);

scale(59)返回53.677419354838705,这是错误的答案。 600 - 53.677419354838705也是错误的答案。

我可能会缺少什么?

谢谢。

1 个答案:

答案 0 :(得分:25)

是完整的值集,因此在这种情况下,这是您的所有温度,从33到64. 范围是结果值的集合函数的一个函数,在这种情况下是将温度从0调整到600的结果值。

所以你几乎就在那里,你只是使用了错误的范围 - 在这种情况下你的范围应该是y轴的范围(0 - 600):

var scale = d3.scale.linear().domain([33, 64]).range([0, 600]);

这将导致scale(59)输出503.2258064516129