2013-12-04 2 views
0

Как инвертировать xAxis для диаграммы MultiBar NVD3? Данные одинаковые (за исключением того, что мне пришлось преобразовать объект {x: ..., y: ...} для свойства values ​​в парный массив для диаграммы с разбивкой по областям. Данные корректно отображаются на линииChart .Инвертировать xAxis для диаграммы MultiBar NVD3

FYI, данные даты упорядочен от позднего к ранним в массиве, но это не имеет значения для шкалы времени, не так ли?

// Stacked Area Chart 
var renderStackedAreaChart = function(data){ 
    var newData = convertData(data); 

    nv.addGraph(function() { 
    var chart = nv.models.stackedAreaChart() 
     .x(function(d) { return d[0]; }) 
     .y(function(d) { return d[1]; }) 
     .clipEdge(true); 

    chart.xAxis 
     .tickFormat(function(d) { return d3.time.format('%b')(new Date(d)); }); 

    chart.yAxis 
     .tickFormat(d3.format('$,.2f')); 

    d3.select('#graph svg') 
     .datum(newData) 
     .transition().duration(500).call(chart); 

    nv.utils.windowResize(chart.update); 

    return chart; 
}); 
}; 

// Stacked MultiBar Chart 
var renderStackedMultiBar = function(data) { 

    nv.addGraph(function() { 
    var chart = nv.models.multiBarChart(); 

    chart.xAxis 
     .tickFormat(function(d) { return d3.time.format('%b')(new Date(d)); }); 

    chart.yAxis 
     .tickFormat(d3.format('$,.2f')); 

    d3.select('#graph svg') 
     .datum(data) 
     .transition().duration(500).call(chart); 

    nv.utils.windowResize(chart.update); 

    return chart; 
    }); 
} 

Stacked Area Chart

MultiBar Chart

+1

Это не поддерживается NVD3 - вам придется изменить исходный код. –

+0

Спасибо, думай, что ты прав. Думайте, что мое использование графика было неправильным, оно должно быть с порядковым масштабом. – collenjones

+0

Я отправлю это как ответ для справки. –

ответ

1

Это не поддерживается NVD3 - вы бы должны изменить исходный код. Быстрое и грязное обходное решение (как вы предложили в комментариях) использовать порядковый масштаб вместо шкалы времени. Таким образом, порядок значений, которые вы указываете как домен, имеет значение, и вы можете просто передать его в обратном порядке.

Обратите внимание, что вы потеряете преимущества временной шкалы таким образом, хотя, например, формат автоматической метки в зависимости от показанного диапазона времени.

+0

Спасибо за сообщение ответа. Я думаю, что использование шкалы времени является неправильным использованием шкалы с несколькими барами. Вы действительно хотите использовать порядковый масштаб. – collenjones

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