这可能有些问题,但我试图比较" r"圆的属性为所提供的屏幕大小的总宽度。我想这样做是因为我有一个topojson d3地图和一些以km为单位的环绕点,我认为在提供的km中绘制r尺寸与地图上的实际尺寸相比会很棒。
所以 - 在一边到另一边它将是大约40006公里(在地球周围),所以我试图建立一个转换,使它看起来(有点)真正的大小。
所以我要确定的是,如果r值恰好或非常接近宽度的100%,那么它就像是
x data in km
_________ convert ___________
100% width r 40006 km
其中x应该是我正在寻找的r尺寸。
所以我有一个适合div的地图,我想知道是否有某种方法可以确定r值是该屏幕宽度的100%。谢谢!
答案 0 :(得分:1)
要解决该问题,请创建比例:
var scale = d3.scale.linear()
.domain([0, 40006])
.range([0, screenWidth]);
然后使用它来获取单个值,如下所示:
scale(40006) // Outputs the screen width
或者在创建积分时使用它,或多或少是这样的:
svg.selectAll(".point").data(pointsData)
.enter().append("circle")
.attr("class", "point")
.attr("r", scale)
.attr("cx", ...)
.attr("cy", ...);
有关比例的更多信息,请查看D3's wiki。
获取屏幕宽度pick your poison。