2015-03-20 1 views
0

У меня есть этот код, который вызывает ошибку, если я использую тики yAxis() или галочку.Использует ли yAxis(). TickFomat не работает для составных диаграмм на dcjs?

 revSpendCompositeChart 
     .width(400).height(180) 
     .elasticX(true) 
     .transitionDuration(1000) 
     .dimension(dateDim) 
     .elasticY(true) 
     .zoomOutRestrict(true) 
     .x(d3.time.scale().domain([minDate,maxDate])) 
     .renderHorizontalGridLines(true) 
     .compose([ 
      dc.lineChart(revSpendCompositeChart) 
       .dimension(dateDim) 
       .colors('orange') 
       .group(spendDateGroup, "Spend"), 
      dc.lineChart(revSpendCompositeChart) 
       .dimension(dateDim) 
       .colors('green') 
       .group(revenueDateGroup, "Revenue") 
     ]) 
     .brushOn(false); 

Однако это вызывает ошибку как неопределенную функцию.

 revSpendCompositeChart 
     .width(400).height(180) 
     .elasticX(true) 
     .transitionDuration(1000) 
     .dimension(dateDim) 
     .elasticY(true) 
     .zoomOutRestrict(true) 
     .x(d3.time.scale().domain([minDate,maxDate])) 
     .yAxis().tickFormat(function (v) { 
        return v + '%'; 
     }) 
     .renderHorizontalGridLines(true) 
     .compose([ 
      dc.lineChart(revSpendCompositeChart) 
       .dimension(dateDim) 
       .colors('orange') 
       .group(spendDateGroup, "Spend"), 
      dc.lineChart(revSpendCompositeChart) 
       .dimension(dateDim) 
       .colors('green') 
       .group(revenueDateGroup, "Revenue") 
     ]) 
     .brushOn(false); 

В документации ничего не говорится об этом. Но я обнаружил, что функция yAxis() поддерживается для линейных диаграмм. Поэтому, поскольку моя составная диаграмма предназначена для двух линейных диаграмм, мне нужно заставить ее работать.

ответ

0

Хотя большинство методов метода dc.js, некоторые не соединяются с одним и тем же объектом . xAxis возвращает объект оси d3, который не является графиком. Если вы доступ к объектам оси диаграммы, сделайте это в прошлом или сделать это в отдельной строке :

var chart = dc.barChart(...).this(...).that(...); 
var xAxis = chart.xAxis().tickFormat(...).ticks(...); 
var yAxis = chart.yAxis().tickFormat(...).ticks(...); 

https://github.com/dc-js/dc.js/wiki/FAQ