Как отображать узлы в виде разных символов в принудительно управляемой библиотеке d3.js? Я хотел реализовать что-то похожее на то, что я написал ниже:
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append(function(d){return d.shape;})
.attr("class", "node")
.attr("r", 5)
.style("fill", function(d) { return color(d.group); })
.call(force.drag);
Каждый узел будет иметь закодированную форму («прямоугольник», «круг» и т. д.). Однако я получаю сообщение об ошибке:
Uncaught TypeError: Object function (d){return "circle";} has no method 'indexOf'
Другой вопрос, связанный с этим, заключается в следующем: как переключаться между применением различных атрибутов для каждой формы? Круги нуждаются в уточнении атрибута «r», но прямоугольники требуют «высоты» и «ширины». Спасибо!