0

我正在尝试使 D3 中的双级分区与对数刻度一起使用。

但是,它似乎无法正常工作。

我已经为角度指定了一个对数刻度:

    var angle1 = d3.scale.log()
        .base(2.0)
        .domain([0, 2 * Math.PI])
        .range([root.x, root.x + root.dx]);

但是,这仅适用于缩放时重新计算角度的情况。

我曾尝试修改原始分区比例,但没有成功。

任何提示表示赞赏。请参阅下面链接中的示例代码。

http://bl.ocks.org/mbostock/5944371

在此处输入图像描述

4

1 回答 1

0

D3 中的分区布局将叶子节点的值相加,以计算具有子元素的元素的布局。根据布局的定义,它应该是这样的。因此,调用 layout.nodes() 时只考虑叶节点值。因此,只能缩放叶节点(例如 log(count + 1))。但是,非叶节点将表示基础值的总和。所有节点以对数方式缩放的唯一选择是编写一个新布局,该布局将考虑每个节点的值,而不是总结子节点的值。

于 2013-10-15T00:24:53.013 回答