1

我正在尝试从此Link运行示例,但我得到的唯一东西是一个灰色框(单击它时没有任何反应)。我正在使用 d3plus-react 包,版本 0.5.2 和反应版本 16.7.0。这是我的代码:

import React, { Component } from "react";
import { Treemap } from "d3plus-react";

const methods = {
data: [
    { value: 100, name: "alpha", group: "group 1" },
    { value: 70, name: "beta", group: "group 2" },
    { value: 40, name: "gamma", group: "group 2" },
    { value: 15, name: "delta", group: "group 2" },
    { value: 5, name: "epsilon", group: "group 1" },
    { value: 1, name: "zeta", group: "group 1" }
  ],
  id: ["group", "name"],
  size: "value"
};

class Hierarcy extends Component {
  render() {
    return (
      <React.Fragment>
        <Treemap config={methods} />
      </React.Fragment>
    );
  }
}

export default Hierarcy;

我会很感激任何帮助:) ps:我忘了提到我使用 create-react-app 创建了应用程序

4

1 回答 1

1

看来您必须使用groupBy: ["group", "name"]而不是id.

不幸的是,链接的Grouped TreeMap可视化来自 d3Plus 的 1.0 版,您可以在此处查看旧示例,包括提到的https://d3plus.org/examples/1.0/。d3Plus-react 使用 d3Plus 的 2.0 版,当使用 Treemap 组件时,您正在使用d3plus-hierarchy,在这种情况下,一个 gruped 可视化看起来像这样https://d3plus.org/examples/d3plus-hierarchy/getting-started/,没有点击时想要的交互性。

要在此版本中显示带有值的工具提示,必须通过tooltipConfig配置。

const methods = {
  groupBy: ["group", "name"],
  data: [
    { value: 100, name: "alpha", group: "group 1" },
    { value: 70, name: "beta", group: "group 2" },
    { value: 40, name: "gamma", group: "group 2" },
    { value: 15, name: "delta", group: "group 2" },
    { value: 5, name: "epsilon", group: "group 1" },
    { value: 1, name: "zeta", group: "group 1" }
  ],
  tooltipConfig: {
    body: d => `<div>Value: ${d.value}</div>`,
    title: d => `${d.name}`
  }
}
于 2019-01-18T00:02:02.243 回答