Я пытался добавить набор SVG в SVG. Итак, внутри SVG я хочу создать функцию для построения графика. Однако, это не работает так, как я ожидал, так как внутренние SVG не имеют измерения в соответствии с моей спецификацией. Итак, я хотел бы знать, что пошло не так.
svg_g_g = svg_g.append("g")
.selectAll("g")
.data(data)
.enter()
.append("g")
.attr("transform", function(d) {
return "translate(" + xScale(d.key) + "," + lift + ")"
})
.append("svg")
.attr("width", function(d) { return xScale(d.key) })
.attr("height", height)
.append("line")
.style("stroke", "black")
.attr("x1", function(d) { return xScale(d.key) })
.attr("y1", height-100)
.attr("x2", function(d) { return xScale(d.key) + 50 } )
.attr("y2", height-100);
Это вывод.
Хотя если я свяжу данные с g (без добавления svg), результат будет более многообещающим.
svg_g_g = svg_g.append("g");
svg_g_g.selectAll("line")
.data(data)
.enter()
.append("line")
.style("stroke", "black")
.attr("x1", function(d) { return xScale(d.key) })
.attr("y1", height-100)
.attr("x2", function(d) { return xScale(d.key) + 50 } )
.attr("y2", height-100);
и это результат. (обратите внимание: в этом случае были показаны линии)
Любая помощь будет оценена.
edit: что я хотел сделать, так это то, что я хотел создать коробочную диаграмму, я использовал здесь набор данных "iris", поскольку я могу сравнить его с другими библиотеками визуализации данных. Текущее состояние Я попытался создать SVG с одинаковым размером для каждой категории, которую я бы использовал, чтобы содержать блок-график. Другими словами, после того, как я смогу успешно создать внутренние SVG, я вызову функцию для создания графика оттуда. Вроде та же идея, что Майк сделал здесь .