增加冰柱可视化的大小

时间:2019-03-13 18:46:49

标签: javascript d3.js data-visualization

我正在这里进行D3可视化: https://bl.ocks.org/mbostock/4347473

如何在标签旁边添加每个框的大小?https://observablehq.com/@d3/zoomable-icicle

我对代码的理解不充分,无法知道在何处附加代码。我假设这是这一行:

cell.append("title")
      .text(d => `${d.ancestors().map(d => d.data.name).reverse().join("/")}\n${format(d.value)}`);

但是Observable格式让我失望。

1 个答案:

答案 0 :(得分:1)

如果要添加每个框的值(称为“大小”)的<title>元素,则只需:

selection.append("title")
    .text(d => d.value);

关于Observable中的那一行...

.text(d => `${d.ancestors().map(d => d.data.name).reverse().join("/")}\n${format(d.value)}`);

...您不能使用它,因为ancestors()是D3 v4 / v5的一种方法,并且您链接的bl.ocks使用v3。除此之外,这...

d.ancestors().map(d => d.data.name).reverse().join("/")

...的确获得了所有父母的名字并将其取反(如果您观察一下可观察物,您会发现在值上方有从根到当前框的序列。因此,您没有不需要它,您只需要模板文字的第二行即可:

format(d.value)

以下是与该更改相关联的bl.ocks:https://bl.ocks.org/GerardoFurtado/3bc4b6c7260d131ed78a5922700fc633/5ba087da8a55063c58a66314dadafd06585b1329