2014-07-03 3 views
1

У меня есть массив следующим образом:Рикша библиотеку JavaScript: строки для оси х

var data = [ { x: "2013-10-22T22:56:25.534Z", y: 0 }, { x: "2013-10-22T22:56:25.524Z", y: 162 }, { x: "2013-10-22T22:56:25.514Z", y: 0 } ]; 

И так далее. Всего 50 объектов, каждый из которых имеет значение x и y. Этот массив следует использовать для рисования диаграммы с помощью этой библиотеки рикши: http://code.shutterstock.com/rickshaw/.

Как вы видите выше, ось x должна визуализировать метку времени, которая находится в строковом формате. Все выглядит нормально, но я получаю сообщение об ошибке: Uncaught x and y properties of points should be numbers instead of string and number

Кто-нибудь знает, как мне настроить библиотеку рикши, чтобы показать временную метку (строку) по оси X диаграммы?

Update A:Попытка решить проблему в рикше библиотеке Как предложено здесь (Rickshaw - js chart library: Need strings instead of numbers on axes), то можно добавить функцию, которая охватывает формат строки тоже. Но я понятия не имею, как мне нужно заполнить этот форматтер, чтобы он работал для моего проекта.

ответ

1

Я не специалист по библиотеке в Рикше. Из их примеров & ваш журнал ошибок, похоже, он ожидает, что X & Y значения объекта в INTEGER типа, но здесь type for X is "String".

Итак, вместо того, чтобы передавать время в формате String, вы можете pass the UNIX Timestamp - который имеет тип INT.


Для Преобразование даты-времени Отметка времени Unix в Javascript, используйте Date.js плагин

Convert normal date to unix timestamp

Просто петля через ваши X координат & изменить их Unix TimeStamp-

var changeDateTimeToTimestamp = function(data){ 
    for(var key in data){ 
     data[key].x = new Date(data[key].x).getTime()/1000; 
    } 
    return data; 
} 

var data = [ { x: "2013-10-22T22:56:25.534Z", y: 0 }, { x: "2013-10-22T22:56:25.524Z", y: 162 }, { x: "2013-10-22T22:56:25.514Z", y: 0 } ]; 
var newData = changeDateTimeToTimestamp(data); 
//console.log(newData); 
+0

Спасибо за ваш ответ. Метка времени, которую я хочу использовать, - это API в json. У меня к нам это. Я попытался преобразовать строку в intereger, но безуспешно. Я также нашел это: [link] http://stackoverflow.com/questions/13061214/rickshaw-js-chart-library-need-strings-instead-of-numbers-on-axes. Но я не понимаю концепции ... – Kevin

+0

Я внедрил ваше обновление. Но после выполнения функции результат, т. Е. Для «2013-10-22T22: 56: 25.534Z», всего 2013 (int). То же самое для других строк :-(Для «1287788185» это работает. Но у меня есть этот неприятный формат с тире «-» и «colons»: »в строке. – Kevin

+0

да. Это должно быть так. Если вы думаете о GRAPH-PAPER, он принимает только координаты X, Y в NUMBER, например (3,5), (10, 20) и т. Д. Как можно построить участок, имеющий String в координатах. –

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