如何使D3.js根据每个节点的半径/直径自动调整字体大小?
我使用一种样式,可以自动增加大小。
node.append("text")
.attr("dy", ".3em")
.style("text-anchor", "middle")
.text(function(d) { return d.className.substring(0, d.r / 3); })
.style("font-size", "10px") // initial guess
//This is what gives it increased size...
.style("font-size", function(d) { return (2 * d.r - 10) / this.getComputedTextLength() * 10 + "px"; })
此效果会从较小的节点中删除文本。我还有一个缩放功能,可以将原始覆盖12像素的点增加到整个屏幕大小。
; * 10 + "px"; })
此代码片段与上下文无关,无法进行翻译或说明。
.call(d3.behavior.zoom().scaleExtent([1, 200]).on("zoom", zoom))
有没有一种方法可以自动地个别格式化节点字体;根据适当的大小编写,以便在缩放时,所调用的节点字体与节点大小成比例显示,而不是一个字体大小适合所有?
正确列表圆圈:名称(大小)
我希望有可行的示例供我学习。因此,在图像大小下,驾驶圆圈北侧的小绿点旁边的P将有黑色不可读的单词,直到我们放大以查看圆圈上写了什么为止。目标是在缩放时具有成比例的可读字体..?
cscale
-- 你可以在那里添加一个因子或者为空格添加一个常量偏移量到bbox.width
。 - Lars Kotthoff