我正在尝试将一些d3代码从v3更新到版本4.我有一个使用JSON数据的树形图.d3.v4示例显示如何使用stratify()https://bl.ocks.org/mbostock/9d0899acb5d3b8d839d9d613a9e1fe04将表格数据(例如flare.csv)转换为分层数据.但我的数据是JSON所以我不想要或不需要分层().我收到此错误:
undefined不是一个函数(评估'root.eachBefore')
运行此代码:
var height = 200;
var width = 500;
var xNudge = 50;
var yNudge = 20;
var tree = d3.tree()
.size([height, width]);
var svg = d3.select("body").append("svg").attr("width","100%").attr("height","100%");
var chartGroup = svg.append("g").attr("transform","translate(50,200) rotate(-90)");
d3.json("treeData.json", function(treeData) {
var root = treeData[0];
tree(root);
console.log('hello');//doesn't log to console, i.e. error occurs beforehand
}
Run Code Online (Sandbox Code Playgroud)
treeData.json:
[
{
"name": "Top Level",
"parent": "null",
"children": [
{
"name": "Level 2: A",
"parent": "Top Level",
"children": [
{
"name": "Son of A",
"parent": "Level …
Run Code Online (Sandbox Code Playgroud) 我需要动态地为我的SVG添加内联样式.我有1000多个SVG图表,我必须保存为PNG.然后,这些将被托管给最终客户(不允许他们查看图表背后的完整数据).当我转换图表时,他们必须保持格式.
SVG将动态添加,我需要为每个添加(相同)样式声明.这是丑陋的,但只是暂时的,直到我生成PNG.我手动进行内联样式/导出工作.
我最近的努力是这样的:
addStyle(svg);
function addStyle(svg) {
var style = svg.append("style")
.attr("type","text/css")
.attr("float","left");
}
Run Code Online (Sandbox Code Playgroud)
它在注释中添加了样式/样式元素.它忽略了浮动:左; 我是否将其添加为.attr()或.style().
编辑:添加CSS代码.我需要添加的CSS是图表:
g.axis path {
fill: none;
stroke: dimgray;
stroke-width: 0.5px;
}
g.axis g.tick line {
stroke: dimgray;
stroke-width: 1px;
}
g.grid g.tick line {
stroke: lightgray;
stroke-width: 0.5px;
}
path.lineF.cons,
path.line.cons {
stroke: white;
fill: none;
stroke-width: 2px;
}
text.import {
fill: #FF376F; /* pink */
}
rect.import {
fill: #FF376F; /* pink */
stroke: white;
stroke-width: 1px;
cursor: pointer;
}
text.export { …
Run Code Online (Sandbox Code Playgroud) 我刚刚添加了一个新的 d3 块,发现所有图形都从我现有的块中消失了: https: //bl.ocks.org/emmasaunders。文本和代码仍然存在,但图形不存在。他们上周工作得很好。
这不是一个正常的问题,但我不知道还能问谁。
鉴于我的唯一保留的块是“如何创建块”块,并且这不包括任何指向我的个人或专业网站的链接,我认为此类链接在 bl.ocks 上是禁止的(不是我可以在任何地方看到这条规则)。我认为我的街区已因这次违规行为而被拆除。
我删除了链接,希望这就是问题所在。有人可以恢复它们吗?如果这不是问题,谁能告诉我问题是什么?谢谢...