【问题标题】:Scale in Bilevel Partition in D3在 D3 中的双层分区中缩放
【发布时间】:2013-10-08 13:32:49
【问题描述】:

我正在尝试使 D3 中的双级分区与 log 规模一起工作。

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

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

    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

【问题讨论】:

  • 域中的对数刻度不能为 0。
  • 如果我想让我的角度根据对数进行缩放,我该怎么办?我在每个节点中都有整数值“大小”> 1。我希望角度与 log_2(size) 成正比。
  • 您可以围绕它创建一个包装器,它为 0 和其他所有 log_2(size) 返回 0。
  • 在下面发布了我的调查结果。谢谢拉斯。

标签: javascript d3.js partition sunburst-diagram


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2016-02-27
    • 2014-04-27
    • 2014-09-20
    • 2021-12-21
    相关资源
    最近更新 更多