নোড, লিঙ্ক এবং অন্যান্য উপাদানগুলি সেট করার জন্য আমার কাছে পরবর্তী বলের বিন্যাস গ্রাফ কোড রয়েছে:
var setLinks = function ()
{
link = visualRoot.selectAll("line.link")
.data(graphData.links)
.enter().append("svg:line")
.attr("class", "link")
.style("stroke-width", function (d) { return nodeStrokeColorDefault; })
.style("stroke", function (d) { return fill(d); })
.attr("x1", function (d) { return d.source.x; })
.attr("y1", function (d) { return d.source.y; })
.attr("x2", function (d) { return d.target.x; })
.attr("y2", function (d) { return d.target.y; });
graphData.links.forEach(function (d)
{
linkedByIndex[d.source.index + "," + d.target.index] = 1;
});
};
var setNodes = function ()
{
node = visualRoot.selectAll(".node")
.data(graphData.nodes)
.enter().append("g")
.attr("id", function (d) { return d.id; })
.attr("title", function (d) { return d.name; })
.attr("class", "node")
.on("click", function (d, i) { loadAdditionalData(d.userID, this); })
.call(force.drag)
.on("mouseover", fadeNode(.1)).on("mouseout", fadeNode(1));
};
//append the visual element to the node
var appendVisualElementsToNodes = function ()
{
node.append("circle")
.attr("id", function (d) { return "circleid_" + d.id; })
.attr("class", "circle")
.attr("cx", function (d) { return 0; })
.attr("cy", function (d) { return 0; })
.attr("r", function (d) { return getNodeSize(d); })
.style("fill", function (d) { return getNodeColor(d); })
.style("stroke", function (d) { return nodeStrokeColorDefault; })
.style("stroke-width", function (d) { return nodeStrokeWidthDefault; });
//context menu:
d3.selectAll(".circle").on("contextmenu", function (data, index)
{
d3.select('#my_custom_menu')
.style('position', 'absolute')
.style('left', d3.event.dx + "px")
.style('top', d3.event.dy + "px")
.style('display', 'block');
d3.event.preventDefault();
});
//d3.select("svg").node().oncontextmenu = function(){return false;};
node.append("image")
.attr("class", "image")
.attr("xlink:href", function (d) { return d.profile_image_url; })//"Images/twitterimage_2.png"
.attr("x", -12)
.attr("y", -12)
.attr("width", 24)
.attr("height", 24);
node.append("svg:title")
.text(function (d) { return d.name + "\n" + d.description; });
};
এখন, রঙ এবং আকারের নির্ভরতা পরিবর্তিত হয়েছে এবং আমাকে বিভিন্ন রঙ এবং ব্যাসার্ধ সহ গ্রাফ চেনাশোনাগুলি (+ সমস্ত সংযুক্ত উপাদান) পুনরায় আঁকতে হবে। এটি নিয়ে সমস্যা হচ্ছে।
আমি এটা করতে পারবো:
visualRoot.selectAll(".circle").remove();
তবে আমার কাছে সমস্ত চিত্র রয়েছে যা আমি '.circles'
এখনও সেখানে যুক্ত করেছি।
যে কোনও উপায়ে, কোনও সাহায্যের প্রশংসা করা হবে, ব্যাখ্যাটি যথেষ্ট পরিমাণে পরিষ্কার না হলে আমাকে জানান, আমি এটি ঠিক করার চেষ্টা করব।
দ্রষ্টব্য মধ্যে পার্থক্য কি graphData.nodes
এবং d3.selectAll('.nodes')
?