我的温度范围是33度到64度。我试图找出沿600像素的y轴59度的像素位置。这是一个柱形图。
完全公开,这是我已经努力了一段时间的作业,只是还没有弄清楚。
var scale = d3.scale.linear().domain([33,64]).range([0,64]);
scale(59)返回53.677419354838705这是错误的答案。
600-53.677419354838705也是错误的答案。
我可能会缺少什么?
谢谢。
最佳答案
域是值的完整集合,因此,在这种情况下,是您的所有温度,从33到64。范围是函数的结果值的集合,在此情况下,是将温度从0缩放到的结果值。 600
因此,您几乎可以使用正确的范围了-在这种情况下,您的范围应该是y轴的跨度(0-600):var scale = d3.scale.linear().domain([33, 64]).range([0, 600]);
这将导致scale(59)
提供503.2258064516129
的输出。
关于d3.js - 了解D3域和范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42973502/