Документация по графику репутации переполнения стека (Flot) - PullRequest
1 голос
/ 24 августа 2010

есть ли документация для построения графика Flot, подобная той, которую мы можем найти на вкладке Переполнение стека профиль / репутация вкладка?

из исходного кода Я вижу, что данные запрашиваются по этому адресу: /users/rep-graph/341106/" + ranges.xaxis.from.toFixed(1) + "/" + ranges.xaxis.to.toFixed(1), но я не знаю значений from и to полей в URL canпринять.

РЕДАКТИРОВАТЬ :

alt text

На этом графике мы видим, что две точки выделены, и в результате получается, что две вопрос указаны на стороне, что означает, что нанесенные значения связаны с пользовательскими данными .

Однако, если я рассмотрим пример pkh, только *Flot предоставляет 1025 * точек (и метку):

label: "United States",
        data: [[1990, 18.9], [1991, 18.7] ....

Поэтому я хотел бы посмотреть:

  1. как связать данные с точками
  2. как обновить панель в соответствии с выбором графика [но, возможно, эта часть фактически не выполняется самим Flot]

Ответы [ 2 ]

2 голосов
/ 26 августа 2010

В этом случае они передают метки времени Javascript обратно через URL.

Так что на стороне сервера они должны делать что-то вроде этого (псевдокод):

//get parameters from URL, non-rails people would just use POST or GET variables
$from = $_GET['from']
$to = $_GET['to']

//convert to timestamps in your language
$from = $from/1000
$to = $to/1000

//query your data source with these time-based restrictions
//return a JSON data set with the given restrictions, linking the known timestamps to labels

Для вашего второго вопроса попросите серверную часть вернуть ассоциативный массив, связывающий временную метку с объектом данных, который в этом случае содержит Gain, Loss, Url, Title. При успешном обратном вызове вы отображаете их. Вот пример объекта данных:

{ 1274774400000 : {
       Gain:0,
       Loss:10,
       Url:'http://asdf.com',
       Title:'We lost some rep here... boohoo'
    },
  1274947200000 : {
       Gain:10,
       Loss:0,
       Url:'http://asdf.com',
       Title:'We gained some rep here... woo!'
    }
}

Вы можете видеть объект этого типа, используемый в функции showReputation на странице, на которую вы ссылались ... за исключением того, что они возвращали массив JSON вместо объекта.

Другая функция, которую вы можете легко добавить, учитывая вышеупомянутый объект данных: событие plotclick, которое выделяет данную точку данных при щелчке по ней.

1 голос
/ 24 августа 2010

Похоже, они используют плагин выбора flot. Вот базовый пример его использования .

ranges является аргументом обработчика plotselected, поэтому from и to могут быть любыми допустимыми значениями для данной оси. (Выбор может быть по осям x, y или (x и y).)

...