d3 sunburst 不使用内联 json 绘制

2024-02-13

我一直在尝试绘制内联旭日形,但结果始终是一个空块。有人可以看一下并提示我为什么吗?非常感谢你的帮助!

基本上这是示例代码,我只是尝试将 json 加载更改为内联 json,这样我就可以更轻松地解析数据。

function draw_chart() {
var width = 960,
    height = 700,
    radius = Math.min(width, height) / 2,
    color = d3.scale.category20c();

var data = {
  "name": "flare",
  "children": [
  {
    "name": "analytics",
    "children": [
    {
      "name": "cluster",
      "children": [
      {"name": "AgglomerativeCluster", "size": 3938},
      {"name": "CommunityStructure", "size": 3812},
      {"name": "HierarchicalCluster", "size": 6714},
      {"name": "MergeEdge", "size": 743}
      ]
    }
    ]
  }
  ]
};


var svg = d3.select("#chart").append("svg")
    .attr("width", width)
    .attr("height", height)
    .data(data)
    .append("g")
    .attr("transform", "translate(" + width / 2 + "," + height * .52 + ")");

var partition = d3.layout.partition()
    .sort(null)
    .size([2 * Math.PI, radius * radius])
    .value(function(d) { return 1; });

var arc = d3.svg.arc()
    .startAngle(function(d) { return d.x; })
    .endAngle(function(d) { return d.x + d.dx; })
    .innerRadius(function(d) { return Math.sqrt(d.y); })
    .outerRadius(function(d) { return Math.sqrt(d.y + d.dy); });

var path = svg.selectAll("path")
    .enter().append("path")
      .attr("display", function(d) { return d.depth ? null : 1; }) // hide inner ring
      .attr("d", arc)
      .style("stroke", "#fff")
      .style("fill", function(d) { return color((d.children ? d : d.parent).name); })
      .style("fill-rule", "evenodd")
      .each(stash);

d3.selectAll("input").on("change", function change() {
    var value = this.value === "count"
        ? function() { return 1; }
        : function(d) { return d.size; };

    path
        .data(partition.value(value).nodes)
      .transition()
        .duration(1500)
        .attrTween("d", arcTween);
});

// Stash the old values for transition.
function stash(d) {
  d.x0 = d.x;
  d.dx0 = d.dx;
}

// Interpolate the arcs in data space.
function arcTween(a) {
  var i = d3.interpolate({x: a.x0, dx: a.dx0}, a);
  return function(t) {
    var b = i(t);
    a.x0 = b.x;
    a.dx0 = b.dx;
    return arc(b);
  };
}

d3.select(self.frameElement).style("height", height + "px");
}

$(document).ready(function(){
  draw_chart();
});

问题是你需要打电话data()根据您的选择以便能够致电enter()并做任何有用的事情。

var path = svg.selectAll("path")
    .data(partition.nodes)      // this is the line you were missing
    .enter().append("path")

See jsfiddle 上的这个工作示例 http://jsfiddle.net/Ztgda/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

d3 sunburst 不使用内联 json 绘制 的相关文章

随机推荐

  • 识别美丽汤中令人困惑的价值目标

    这是一个涉及Python的问题 美丽的汤 https www crummy com software BeautifulSoup bs4 doc 和 HTML 以及投资百科API https github com kirkthaker in
  • 洪水填充四路算法复杂度

    我已经搜索过 但似乎找不到洪水填充算法 四路版本 的复杂性 大 O 表示法的复杂度究竟是多少 时间复杂度为 O 4 mn mn 因为矩阵的每个单元最多被处理4次 例如 可以通过其顶部 底部 左侧或右侧单元格来调用特定单元格
  • OpenCV 绘制匹配错误

    我的代码由一个部分组成 我在其中对一组匹配进行排序并根据距离定义良好的匹配 当我尝试绘制匹配时 我收到错误 OpenCV Error Assertion failed i1 gt 0 i1 lt static cast
  • 如何使 pip 可用于 Windows 上的 git bash 命令行?

    我添加了pip我的 python site packages 目录中的安装文件夹到我的 PATH 但我仍然只能通过以下方式运行它python m pip在我的 git bash 中 只是pip给我command not found 我环顾四
  • PyQt5 - 如何在鼠标点击位置画一个点?

    我试图在主窗口上画一个点 但该点未显示 我尝试过绑定mousePressEvent to paintEvent 但效果不佳 这是我的代码的当前版本 也不起作用 我也尝试提出一个观点drawPoint方法 它也不起作用 import sys
  • Django - 如何从模型中选择特定列?

    我嗅了一下 找不到这个 但我确信它就在这里的某个地方 对这个潜在的双重帖子表示歉意 如果我有这个代码 return Story objects filter user request user id order by create date
  • Python 在 cv2.destroyWindow() 之后冻结

    我在 Mac OS X Lion 上的 Python 2 7 下使用 openCV 每当我运行代码来简单地显示相机源 来自 iSight 时 Python 就会冻结 看起来相机实际上并没有得到清理 我使用了相同代码的多个不同版本 如下 来自
  • Android EditText,在 numberDecimal 输入类型的情况下显示逗号和点作为可能的分隔符

    我需要让用户在输入十进制数时在两个变体之间进行选择 使用逗号 作为分隔符 使用点 作为分隔符 默认情况下 如果我使用inputType numberDecimal in the EditTextxml配置 EditText仅显示数字和逗号
  • R - 更改 corrplot 轴标签的大小

    我正在使用以下内容corrplot require corrplot needs the corrplot package corrplot cor lpp axis1 lpp axis2 method c number bg grey10
  • 如何将我的函数放入类中。Beginner

    我下面有一个 Json 函数 需要构造一个具有两个函数的类 我的第二个函数如何 知道 data这是第一个函数的响应 def results json request request get json data json loads json
  • Oracle SQL 循环遍历日期范围

    我正在尝试编写一个执行以下操作的查询 从 Visit 表中获取 Start Date 和 End Date 对于日期范围内包含的每个日期 搜索遭遇表 查看特定提供者在该日期是否看过患者 生成一个表格 显示每个日期以及谁在该日期见过该患者 日
  • 为什么我的 JFrame 没有显示?

    我很确定我以前已经这样做过 但由于某种原因 当我运行它时 JFrame 不会显示 JLabel originalString new JLabel Original String str getMutator JLabel currentS
  • 如何在 flutter/dart 中从购物车中删除商品

    当您有单独的列表小部件时 如何从 flutter 中的列表中删除购物车项目 我有三个包含以下代码的文件 carts dart gt 我在其中显示所有列表项 cart list item gt 我在其中创建了一个小部件 api service
  • 如何模拟任何未直接调用的函数?

    TL DR 我如何修补或模拟 任何未被直接调用 使用的函数 设想 我有一个简单的单元测试片段 utils functions py def get user agents sends requests to a private networ
  • 为什么我应该使用“->”而不是“.”在对象的指针中? [复制]

    这个问题在这里已经有答案了 我同意这可能是一个非常初学者的问题 但我不知道为什么我不能使用 访问对象指针的成员 e g JMP sum obj new JMP 0 JMP a sum obj gt number a number sum o
  • 从句子级别的旋转文本中取消旋转 PHP 中的文本

    我需要在 php 页面中整齐地输出旋转文本 我已经有了 hi hello greetings 格式的预旋转文本 我有一个在其他地方找到的 php 代码 但它不会在句子级别输出旋转文本 其中有两个 这是需要修复的代码
  • 如何在magento中提交表单后获取发布数据变量

    如何获取后变量的数据 就像如果我使用 post 方法发布表单 那么我可以使用 REQUEST 或 POST 获取它 我怎样才能在 mgento 中做到这一点 您可以使用以下命令读取值 this gt getRequest gt getPar
  • 在 Django 应用程序内对弹性搜索进行单元测试

    我有一个使用弹性搜索的 Django 应用程序 我想要 100 的代码测试覆盖率 因此我需要测试对 elasticsearch 在本地 安装 的 API 调用 所以我的问题是 模拟整个elasticsearch 更好还是我应该运行elast
  • cin.getline() 正在跳过 C++ 中的输入[重复]

    这个问题在这里已经有答案了 如果我使用以下代码 getline 不会采用最后一个输入 对于 for 循环的最后一次迭代 它只是跳过它 int main int n map
  • d3 sunburst 不使用内联 json 绘制

    我一直在尝试绘制内联旭日形 但结果始终是一个空块 有人可以看一下并提示我为什么吗 非常感谢你的帮助 基本上这是示例代码 我只是尝试将 json 加载更改为内联 json 这样我就可以更轻松地解析数据 function draw chart