#javascript #jquery #d3.js
#javascript #jquery — запрос #d3.js #jquery
Вопрос:
Я не могу нарисовать линейную диаграмму в месяцах по оси x, когда я использую поле даты из данных json, затем оно появляется при использовании месяца с этой даты, оно не рисуется, и консоль также не показывает никаких ошибок, я привел здесь fiddle для этого сценария с данными jsonhttp://jsfiddle.net/6zrMc/7
data.forEach(function(d) {
d.date =parseDate(d.date);
d.close = d.close;
});
var valueline = d3.svg.line()
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.close); });
x.domain(d3.extent(data, function(d) { return d.date; }));
y.domain([0, d3.max(data, function(d) { return d.close; })]);
этот код работает нормально, но который я показал в fiddle, который не работает только с типом месяца
пожалуйста, кто-нибудь, подскажите мне по этому поводу.
Ответ №1:
Вы используете d.activemonth
в своей x-шкале (которая представляет собой временную шкалу). Так d.activemonth
должен быть объект-дата. Способ parseMonth
определен (без .parse
), он преобразует объект даты в строку. Итак
parseMonth(new Date(d.date))
Вернет строку Oct
и x(d.activemonth)
будет x('Oct')
, что недопустимо, поскольку x принимает только объекты даты. Решение состоит в том, чтобы изменить
d.activemonth = parseMonth(new Date(d.date));
например, к допустимому объекту даты
d.activemonth = new Date(d.date);
(Который будет таким же, как d.date
).
Комментарии:
1. Я не понял, пожалуйста, можете ли вы исправить в скрипке, чтобы я мог иметь четкое представление об этом
2. хорошо, я понял это, и я тоже пробовал, но на самом деле результат похож на ср чт, чего я не хочу, это должны быть только названия месяцев по оси x и количество, которое y, я спросил тебя снова
3. братан 1 последнее, когда у меня есть более одной записи с тем же месяцем, как я могу что-то изменить, потому что он всегда переписывает одно и то же значение, как в этой скрипке jsfiddle.net/6zrMc/15
4. независимо от того, что вы указали, это не между месяцем и количеством, а между датой и количеством, я хочу нарисовать график между месяцем и количеством, так что это неправильное решение jsfiddle.net/6zrMc/12