【问题标题】:GOJS, Donut Chart around NodeGOJS,节点周围的甜甜圈图
【发布时间】:2018-11-07 14:26:09
【问题描述】:

我正在尝试设计一个节点模板,其中它将有一个围绕节点的圆环图,如下例所示:

节点数据将为 5 个不同的属性提供 5 个值,并且它们将由节点周围的不同颜色表示。

我看过 GoJs 饼图示例 https://gojs.net/latest/samples/pieCharts.html

我正在尝试在饼图中添加空心圆圈,使其看起来像甜甜圈图。我从 GoJs Shapes https://gojs.net/latest/samples/shapes.html

Ring Shape 开始

所以,我正在修改饼图示例中的函数 ma​​keGeo。以下是我的代码。

function makeGeo(data) {
    var start = data.start;
    var sweep = data.sweep;
    var end = start + sweep;
    var param1 = 8;
    var w = 100;
    var geo = new go.Geometry();
    var rad = w / 2;

    var fig = new go.PathFigure(rad, rad, true);  // clockwise
    geo.add(fig);
    fig.add(new go.PathSegment(go.PathSegment.Arc, start, sweep, rad, rad, rad, rad));

    var rad2 = Math.max(rad - param1, 0);
    if (rad2 > 0) {  // counter-clockwise
        //fig.add(new go.PathSegment(go.PathSegment.Move, rad + rad2, rad));
        fig.add(new go.PathSegment(go.PathSegment.Arc, end, -(sweep), rad, rad, rad2, rad2));
    }

    geo.defaultStretch = go.GraphObject.Uniform;
    return geo;
}

This is my output so far

任何帮助将不胜感激

【问题讨论】:

  • 我使用的是 GoJS 版本 1.6.15

标签: javascript donut-chart gojs


【解决方案1】:

您调用了两次 PathSegment.close。我建议你只调用它最后一次,而不是第一次。

【讨论】:

  • 使用 PathSegment.close 一次,甚至不使用它,都没有区别。但是评论以下行使输出看起来有点接近目标。 fig.add(new go.PathSegment(go.PathSegment.Move, rad + rad2, rad));
  • 我已经更新了有问题的 makeGeo 函数,现在您可以看到更新后的输出。我想我现在已经很接近了,但不知道如何修复这些细线......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多