树图布局算法定制

问题描述 投票:0回答:1

我是使用图表的新手,据我了解,我需要三张图表(使用 React 的 highcharts 库)。我正在尝试使用树形图类型为我的图表构建一个算法,但没有成功。我会附上我需要做什么的图片,也许有人可以帮助我做到这一点? image

找到以正确方式构建图表的解决方案

highcharts treemap react-highcharts
1个回答
0
投票

没错,您需要构建自定义算法来创建设计的图表。例如,您可以添加另一个子点并将其显示为父点。下面的例子:

function customAlgorithm(parent, children) {
  const childrenAreas = [];
  const isSecondLevel = children[0].level === 2;
  let x = 0;

  children.forEach((child, index) => {
    const height = isSecondLevel ? parent.height / 2 : parent.height;
    const y = isSecondLevel ? parent.height / 2 : 0;

    if (isSecondLevel && index === 0) {
      childrenAreas.push({
        x: 0,
        y: 0,
        width: parent.width,
        height: parent.height / 2
      });
    } else {
      const width = isSecondLevel ?
        parent.width * (child.val / (parent.val - children[0].val)) :
        parent.width * (child.val / parent.val);

      childrenAreas.push({
        x,
        y,
        width,
        height
      });

      x += width;
    }
  });

  return childrenAreas;
}

Highcharts.seriesTypes.treemap.prototype.customAlgorithm = customAlgorithm;

现场演示:https://jsfiddle.net/BlackLabel/z5v4wfme/

文档: https://www.highcharts.com/docs/chart-and-series-types/treemap

© www.soinside.com 2019 - 2024. All rights reserved.