D3.js 如何为本地geojson文件绘制d3气泡图
我想画一张d3气泡图。以d3为例 我试图获取本地文件的气泡图,即D3.js 如何为本地geojson文件绘制d3气泡图,d3.js,charts,geojson,D3.js,Charts,Geojson,我想画一张d3气泡图。以d3为例 我试图获取本地文件的气泡图,即myfile.geojson。我尝试的代码在plunker链接中。我想根据“利润”值绘制一个气泡图。我尝试了谷歌和youtube上的一切,但我没有找到解决问题的办法。 我是d3新手。如果我在代码中有任何错误,请建议我改正。提前谢谢 您的数据与flare.json不同,因此复制递归代码不会使您的数据无效。您的数据集非常简单,它不需要递归来展平数据集 function classes(root) { var classes = [
myfile.geojson
。我尝试的代码在plunker链接中。我想根据“利润”值绘制一个气泡图。我尝试了谷歌和youtube上的一切,但我没有找到解决问题的办法。
我是d3新手。如果我在代码中有任何错误,请建议我改正。提前谢谢 您的数据与flare.json不同,因此复制递归代码不会使您的数据无效。您的数据集非常简单,它不需要递归来展平数据集
function classes(root) {
var classes = [];
function recurse(profit, node) {
if (node.profit) node.profit.forEach(function(child) { recurse(node.profit, child); });
else classes.push({packageName: type, className: node.profit, value: node.profit});
}
recurse(null, root);
return {features: classes};
}
这应该是:
function classes(root) {
var classes = root.features.map(function(f, i) {
//here i is the index
return {
value: f.properties.profit,
className: "Hello" + i,////just giving some dummy values
packageName: i//just giving some dummy values
}
});
return classes;
}
现在将此数据传递到气泡布局,如下所示:
var node = svg.selectAll(".node")
.data(bubble.nodes({
children: classes(root)
}).filter(function(d) {
return !d.children;
}))
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")";
});
编辑
气泡图基于利润值:
圆的半径取决于您在类函数中给出的值
return {
value: f.properties.profit,
className: "Hello" + i,////just giving some dummy values
packageName: i//just giving some dummy values
}
因此,价值或利润越大,半径就越大。
半径将相对于您在此处设置的直径:
var bubble = d3.layout.pack()
.sort(null)
.size([diameter, diameter])
d3中的读取域范围
我应该给出什么来代替className和packageName,以获得基于利润值的气泡图
我不知道该怎么回答,我认为你的概念不清楚,这是一个幼稚的问题
如果看到packageName定义颜色的代码
.style("fill", function(d) {
return color(d.packageName);
});
和className定义要在气泡中显示的文本
.text(function(d) {
return d.className;
});
请查看fiddle中的代码,它非常容易理解
工作代码。谢谢您,先生。但泡沫图并不是根据利润值绘制的。我应该给出什么来代替className和packageName,以获得基于利润值的气泡图。先生,请帮帮我。谢谢好的,先生,我知道了。谢谢,谢谢。对不起,先生,我第一次拿不好,非常感谢,先生。谢谢。:-。