使用D3的具有不同Y标度的多个图

时间:2012-06-10 21:47:29

标签: javascript graph d3.js axes

我正在使用d3制作多个线图(参见功能示例http://jsfiddle.net/hSrP7/)。但是,我希望每个情节都有不同的yscales。我尝试了以下语法,但没有成功:

var diseases = ['Maternal_Mortality', 'Child_Mortality', 'Malaria']

    var min = []
        min['Maternal_Mortality'] = .4
        min['Child_Mortality'] = .3
        min['Malaria'] = .1
    var max = []
        max['Maternal_Mortality'] = .7
        max['Child_Mortality'] = .6
        max['Malaria'] = .8

yscale = function(dis) {
       yval = d3.scale.linear().domain([min[dis], max[dis]).range([plotHeight -     
       bottomPadding, topPadding])
       return yval
}

var yaxes = d3.svg.axis()
        .scale(diseases.forEach(function(d) {return yscale(d)}))

以下是使用此语法无效的小提琴的链接(http://jsfiddle.net/Hn5JX/)。有没有办法将不同的yscales传递给每个图表?我实际使用的图表有很大的差异。谢谢,

1 个答案:

答案 0 :(得分:0)

你的javascript中只有一个类型o。您忘记关闭传入ysc​​ale域的数组:

.domain([min[dis], max[dis])  // change to:
.domain([min[dis], max[dis]])

http://jsfiddle.net/Hn5JX/2/

修复了小提琴和它的渲染但如果你还没有看到你需要的话,我会编辑答案。

相关问题