2015-08-03 3 views
0

я новейший в JS и не может установить цвет текста с помощью d3:d3 если/другое, чтобы установить цвет

 var format = d3.format('s'); 
     var format2 = d3.format("0,000") 
     var data= d3.csv("data/table1.csv", function (data) { 
      data.forEach(function (d) { 
       d.AMOUNT_PA = +Math.round(d.AMOUNT_PA); 
       d.AMOUNT_PA = format2(d.AMOUNT_PA) 
      }); 


      var thead = d3.select("#PA_AMOUNT").select("thead").selectAll("th") 
      .data(d3.keys(data[0])) 
      .enter().append("th").text(function (d) { return d }); 

      var tr = d3.select("tbody").selectAll("tr") 
      .data(data).enter().append("tr"); 

      var td = tr.selectAll("td") 
       .data(function (d) { return d3.values(d) }) 
       .enter().append("td") 
       .text(function (d) { return d }) 


       .style("color", data.map(function (x) { 

       if(parseInt(x.AMOUNT_PA)<=30) 
        {return "red"} 
       else {} 
       })) 

Функция Возвращаемый целочисленный в console.log, но не настройка цвета

+0

Это: 'data.map (функция (х) {' нарушает связывания данных d3 в. Вы хотите, чтобы вся строка была красной на основе значения AMOUNT_PA? См. [Здесь] (http://plnkr.co/edit/Dd8z2mPADjMW2XoBcLvl?p=preview) для одного возможного решения. – Mark

ответ

1

Он появляется ваш отсутствует ключевое слово «возвращение» в вашей, если заявление, которое определяет цвет использовать ...

if(parseInt(x.AMOUNT_PA)<=30) 
        { return "red"; } 
       else {} 
       })) 

Посмотрите на следующий JSFiddle

http://jsfiddle.net/heavyhorse/4p0sewhe/2/

body.selectAll('h1') 
.data(dataset) 
.enter() 
.append('h1') 
.classed('data-label',true) 
.text(function(d){ return d.val; }) 
.style('color',function(d) { 
    if(d.val > 30) { 
     return "black"; 
    } else { 
     return "red"; 
    } 
}); 
+0

Не работает –

+0

http://jsfiddle.net/heavyhorse/4p0sewhe/1/ обновил jsfiddle, чтобы использовать структуру таблицы – heavyhorse

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