Я пытаюсь отобразить ширину столбца dc, crossfilter и d3 временной шкалы. Данные в формате JSON идет с 1989 по 2010 год и выглядит следующим образом:Неверные метки по оси x при использовании диаграммы временных рядов
[{
year: 1999,
events: 40
},{
year: 1996,
events: 25
},
...
]
Для того, чтобы сделать это у меня есть следующий код:
var volumeChart = dc.barChart("#yearly-chart");
var ndx = crossfilter(data);
var yearDim = ndx.dimension(function(d) {
return d.year;
});
var countPerYear = yearDim.group().reduceSum(function(d) {return d.events;});
volumeChart
.width(700)
.height(200)
.margins({top: 50, right: 50, bottom: 20, left: 40})
.dimension(yearDim)
.group(countPerYear2)
.elasticY(true)
.x(d3.time.scale().domain([1989, 2011]))
volumeChart.render()
Этот вид работ, но год этикетки в X ось странным образом перепутались:
Если я использую Date
объекты для определения x
оси, как:
x(d3.time.scale().domain([new Date(1989, 1, 1), new Date(2010, 12, 31)]))
Я не получаю данных на графике, хотя похоже, что это должен быть правильный способ сделать это. Что я делаю не так?
Объекты даты - это действительно путь, но вам необходимо проанализировать даты в вашем JSON и в таких объектах. Поэтому везде, где вы загружаете данные, также анализируйте даты. –
Так оно и было, это имеет смысл. Позаботьтесь написать это как ответ, чтобы я мог отметить это как правильно? – GiantSquid
Несомненно, сделаю, спасибо. –