Как я могу использовать даты в качестве значений и вдоль оси X в RGraph?

Я пробую демонстрацию RGraph с горизонтальной полосой с этим кодом, и он отлично работает:

var data = [1, 40, 30];
var hbar = new RGraph.HBar('myCanvas', data);
hbar.Set('chart.labels', ['Richard', 'Alex', 'Nick']);
hbar.Set('chart.background.barcolor1', 'white');
hbar.Set('chart.background.barcolor2', 'white');
hbar.Set('chart.background.grid', true);
hbar.Set('chart.colors', ['red']);
hbar.Draw();

Есть ли способ использовать объекты Date вместо чисел? Я не мог заставить его работать с такими вещами, как

var data = [new Date(1000), new Date(2000), new Date(3000)];

person Jean-Philippe Pellet    schedule 10.11.2011    source источник
comment
Зачем вам нужно использовать объекты Date? Можете ли вы объяснить, что именно вы пытаетесь сделать?   -  person pradeek    schedule 15.11.2011
comment
Я хочу отображать горизонтальные гистограммы, значения которых являются датами, чтобы показать график, похожий на временную шкалу.   -  person Jean-Philippe Pellet    schedule 15.11.2011


Ответы (1)


В этом случае вы можете сделать что-то вроде:

var data, dates = [new Date("11/16/2011"), new Date("11/17/2011"), new Date("11/18/2011")], labels = [];
// Get the date from the date objects
for(var i = 0, len = dates.length; i < len; i++) {
    // Data for the graph
    data[i] = dates[i].getDate();

    // Labels for each data entry
    labels[i] = dates[i].getDate() + "/" + dates[i].getMonth() + "/" + dates[i].getYear();  
}
var hbar = new RGraph.HBar('myCanvas', data);
hbar.Set('chart.labels', labels);

/// rest of the code 

Объект даты в MDN: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

person pradeek    schedule 15.11.2011
comment
Спасибо за ваше предложение. Это только часть дела, так как я не вижу хороших меток даты на оси X… - person Jean-Philippe Pellet; 16.11.2011
comment
Что вы хотите отобразить в ярлыках? Можешь ясно сказать? - person pradeek; 16.11.2011
comment
Ну, я бы хотел даты вместо чисел — в формате, который я могу определить, например. гггг-ММ-дд. - person Jean-Philippe Pellet; 16.11.2011
comment
Проверьте отредактированный ответ. Вы можете изменить формат даты по своему усмотрению. Также проверьте ссылку MDN на объект Date для ссылок на функции. - person pradeek; 16.11.2011
comment
Установка таких меток не работает: она устанавливает имя горизонтальных полос. Я хочу, чтобы даты отображались по горизонтальной оси. - person Jean-Philippe Pellet; 18.11.2011
comment
Значения для горизонтальной оси автоматически генерируются из указанных данных. Вы можете увидеть список доступных параметров настройки здесь: rgraph.net/docs/bar.html #свойства. - person pradeek; 19.11.2011
comment
Да, они генерируются автоматически, и в этом проблема: это числа, а не даты. Мы очень близки, но я не могу присудить вам 100 баллов, пока мы не придем к рабочему решению. - person Jean-Philippe Pellet; 19.11.2011
comment
@Jean-PhilippePellet Я изменил файл RGraph.hbar.js. dl.dropbox.com/u/1088914/RGraph.hbar.js . Используйте этот файл и используйте hbar.Set('chart.hlabels', ['l1', 'l2', ... ]); установить текст для горизонтальной оси. Изменения произошли со строки 592 на строку 595. Проверьте форматирование на основе ваших входных данных. P.S. : Награда за 100 повторений — не единственная причина, по которой мы отвечаем на вопросы здесь. Это потому, что мы учимся и у них. ;) - person pradeek; 19.11.2011