Javascript 从不同列中提取数据的折线图函数

Javascript 从不同列中提取数据的折线图函数,javascript,d3.js,Javascript,D3.js,我试图创建一个函数,用不同城市的二氧化碳排放数据绘制一个简单的折线图。在我的数据集中,每一列都是一个城市,每一行都是一年,所以这些数字指的是该地区每年向大气释放的二氧化碳 function lineChart(city){ // set the dimensions and margins of the graph var margin = {top: 20, right: 20, bottom: 30, left: 50}, width = 960 - margin.left - m

我试图创建一个函数,用不同城市的二氧化碳排放数据绘制一个简单的折线图。在我的数据集中,每一列都是一个城市,每一行都是一年,所以这些数字指的是该地区每年向大气释放的二氧化碳

function lineChart(city){

// set the dimensions and margins of the graph
var margin = {top: 20, right: 20, bottom: 30, left: 50},
    width = 960 - margin.left - margin.right,
    height = 500 - margin.top - margin.bottom;

// parse the date / time
var parseTime = d3.timeParse("%Y");

// set the ranges
var x = d3.scaleTime().range([0, width]);
var y = d3.scaleLinear().range([height, 0]);

// define the line
var valueline = d3.line()
    .x(function(d) { return x(d.Year); })
    .y("function(d) { return y(d."+city+"); }");

;}

lineChart("london");
我知道代码不完整,但我粘贴了这一点,让你知道我想做什么。我想通过调用以城市为变量的函数,为每个城市绘制不同的图形。我尝试使用这个
.y(“函数(d){returny(d.“+city+”);}”)但它不工作

有人知道如何解决这个问题吗

谢谢

你不需要函数(d){returny(d.“+city+”;}周围的
”——它告诉javascript将文本
function(d){returny(d.
);}
解释为字符串,给出
function(d){returny(d.london)}的
y
属性
。您希望执行该功能,而不仅仅是引用它

要访问城市的数据,您需要访问

d['london']
从对象
d
(也可以写为
d.london
)。由于
city
是存储当前城市名称的变量,因此可以使用

d[city]
整条线路就是这样

.y(function(d) { return y(d[city]); });
.y(函数(d){返回y(d[城市];});