2012-06-10 5 views
0

Я делаю несколько строк с использованием d3 (см. Функциональный пример http://jsfiddle.net/hSrP7/). Тем не менее, я хотел бы иметь разные yscales для каждого сюжета. Я пробовал синтаксис, такие как следующие, но без успеха:Несколько графиков с различными Y-шкалами с использованием D3

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 для каждого графика? Графы, с которыми я действительно работаю, имеют гораздо большие различия. Спасибо,

ответ

0

У вас просто был тип-o в вашем javascript. Вы забыли закрыть массив, переданный в домен yscale в:

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

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

Исправлена ​​скрипку, и это делает, но я буду править ответ, если вы все еще не видите, что вам нужно.

Смежные вопросы