【发布时间】:2016-06-12 15:52:27
【问题描述】:
我是 StackOverflow 的新手,刚开始使用 D3。 我需要在地图上显示值。我看到this question 和我应该做的很相似。
我想要根据Date 列中的值将国家/地区着色为 CSV,并根据用户选择的年份(单选按钮)。
我该怎么做?
我创建了一个灰度等级并将它们包含在一个数组中,然后我创建了一个方法chooseColor(value),它根据该年国家/地区的值返回正确的颜色。
我认为这不是做这件事最有效的方法......
另外,在我的 CSV 中,并非所有国家/地区都在欧盟。例如,我没有关于俄罗斯的数据,所以我“关闭”了一些国家/地区,在 mouseover 的活动中添加了 if。
但我也会在地图上切掉俄罗斯的一部分,以扩大已知国家。我怎么也能做那件事?
我查看了这些示例:Mike Bostock 在 bl.ocks.org 上的 Choropleth 和 Threshold Choropleth,但我不知道如何为国家/地区着色...... (我想放链接,但由于我的声誉低,我不能发布超过 2 个链接)
我为我糟糕的英语道歉。谢谢大家,
码头
编辑
我承认我没有理解您代码中的某些内容。
- 为什么我需要事件
on mouseover和mouseout?hover和rhover是什么?我以为它们是与this question 相关的事件。但就我而言,我不需要它,不是吗? - 使用
array_values或d是一样的,对吧?如果我使用d或array_values不会改变,对吧?这是一个愚蠢的问题,但让我很困惑。 -
我用这种方式修改了
makemap方法。我正确理解如何使用您的代码?function makemap(error, europe, desease) { dess = dessease.slice(); 县 = topojson.feature(europe, europe.objects.collection);
vector = svg.selectAll("path") .data(counties.features) .enter() .append("path") .attr("class", "county") .attr("id", function(d) { return "coun" + d.properties.indx; }) .attr("d", path) .style("fill", function(array_values) { return color(array_values[d.country]); });
在这种情况下,当然有关于d 的错误。对不起,我不知道我错在哪里......
【问题讨论】:
-
请删除您的功能:选择颜色。或者重构它
标签: javascript d3.js