d3.js - 将 d3.js sunburst 集成为数据工作室社区可视化
问题描述
我正在尝试使用新的谷歌数据工作室社区可视化功能将旭日形图直接集成到数据工作室中。
我遇到的问题是旭日形图最初没有出现,但如果我在数据工作室编辑模式下移动图表区域(或者如果我在编辑窗格中重新确认指标/维度),它会出现。完成第一步(拖放)后,图表会正确显示,并且我在 Data Studio 中正确调整大小/响应良好。
我尝试通过控制台(日志)对 javascript 中的不同对象与 sunburst 的本地执行进行故障排除(仅限 html / css / js,而不是在 datastudio 上)。似乎在数据工作室版本中,“json”对象在第一次加载时被正确定义,但添加到 DOM 的“路径”不起作用(参见代码中的 var path = vis.data .....)
单击上面的存储桶链接以访问所有代码。可视化 js 代码位于 MyViz.js 文件的末尾(在缩小 d3.js 加载之后)。如果您想在 datastudio 中尝试一下,这是我的数据集(又快又脏)
任何帮助都将受到热烈欢迎!
解决方案
你的代码有
document.body.appendChild(chartElement);
在函数末尾drawViz()
调用,但您的 d3.js 代码drawViz()
假定它chartElement
已经是活动 DOM 的一部分。
如果您将它移到设置高度/宽度属性的右下方,
var chartElement = document.createElement('div');
chartElement.id = 'chart';
chartElement.setAttribute("height", `${height}px`); // REMOVE
chartElement.setAttribute("width", `${width}px`); // REMOVE
// NOTE: I moved this line of code up
document.body.appendChild(chartElement);
我能够让您的代码在页面加载时呈现。
注意:有关如何使用 d3.js 社区可视化管理 svg 渲染/重绘的示例,请查看GitHub 上的Sankey可视化代码。
推荐阅读
- powershell - 电源外壳。循环遍历证书存储并根据指纹删除证书
- c# - 为什么我发布后我的服务器设置没有被读取?
- python - python 可以在 MS Access 中使用而无需链接到数据库吗
- amazon-web-services - Cassandra 在启动后几分钟内因内存不足而崩溃
- html - 使用css旋转图像而不绕圈移动
- c# - 将十六进制参数传递给 RDLC
- android - openid app auth 自定义社交登录给出异常 ANDROID
- python - 如何在python中计算每15行的百分位数
- arrays - 局部和全局数组和分段错误
- sql - 如何从一长串数据中提取信息