D3使用对象数组从键中获取值
D3 Getting values from keys using array of objects
所以我读了一个关于国家GDP的csv文件,我过滤掉了不需要的列和国家。现在我想知道如何从这个对象数组中提取值,并使用它们为多系列折线图创建x轴和y轴。这是我的代码
function country(element) {
return element.CountryName == "Brazil" ||
element.CountryName == "China" ||
element.CountryName == "Russian Federation" ||
element.CountryName == "United Kingdom" ||
element.CountryName == "United States" ||
element.CountryName == "Germany";
}
d3.csv("GDP.csv", function(d) {
return {
CountryName : d["Country Name"],
Indicator : d["Indicator Name"],
y2004 : d["2004"],
y2005 : d["2005"],
y2006 : d["2006"],
y2007 : d["2007"],
y2008 : d["2008"],
y2009 : d["2009"],
y2010 : d["2010"],
y2011 : d["2011"],
y2012 : d["2012"]
};
},
function(error, rows) {
//document.write(rows);
dataset = rows;
var filtered = dataset.filter(country);
console.log(filtered);
//Code to create axes and map keys
});
现在我有一个包含6个对象的数组,每个对象在特定命名的键处具有值。我见过的例子通常是从文件的头行读取键值,但我该如何处理这个尝试?
x轴表示2004-2012年,它们是列名和键值。y轴是这些年份的数值范围。生成的6行分别代表每个国家。
我要遵循的例子是http://bl.ocks.org/mbostock/3884955
我需要解析日期吗?我不这么认为,因为我只是在处理年份数字,它们是键值,而不是键值。谢谢。
我将收集我的数据,以便每个点有4个键:
{country:"Germany", indicator:"...", year:2004, value:55}
而不是每年都有密钥。只需对csv调用进行后处理。
当您这样做时,确定最小/最大年份和最小/最大值。
接下来,使用域[minYear, maxYear]构建年刻度(x轴)。接下来,使用[minValue, maxValue]域为y轴构建一个值刻度。
D3想要使用具有相同键集的对象数组。如果必须这样做,可以在预处理阶段将数据修改为如下格式:
[
{ key: value, key2: value },
{ key: value, key2: value },
{ key: value, key2: value },
{ key: value, key2: value },
{ key: value, key2: value }
]
否则你将会有一个非常糟糕的时间与D3,因为大多数的函数式编程功能的工具包将不会为你工作。
相关文章:
- 获取数组的总值
- 按最大值获取数组索引
- React.js如何从js文件中获取数组
- TinyMCE获取数组数据
- 如何获取数组详细信息另一页
- 使用javascript从节点属性获取数组值
- 使用JavaScript获取数组中表单的所有控件
- 获取数组的长度-打印不正确的值
- 正在从JSON对象获取数组
- 什么'获取数组的已定义部分的最快方法是什么?JS
- 如何使用angular指令从html中获取数组
- 如何获取数组中数字的最大出现次数
- 根据优先级获取数组的值
- JAVASCRIPT:获取数组中的值
- 获取数组的元素,无论索引的大小如何
- JavaScript:在XML中搜索节点并从该节点获取数组
- 无法获取数组的长度
- 在数字索引循环中获取数组项的键
- 如何使用JavaScript或jQuery获取数组中选定的optgroup和选项
- Javascript-函数获取数组元素参数未定义/为null