Документация для графа репутации Stack Overflow (Flot)

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

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

ИЗМЕНИТЬ:

альтернативный текст

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

Однако, если я рассмотрю пример pkh, Flot предоставляются только баллы (и метка):

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

Итак, я хотел бы видеть:

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

person Kevin    schedule 24.08.2010    source источник


Ответы (2)


В этом случае они передают временные метки 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, которое выделяет заданную точку данных при щелчке по ней.

person Ryley    schedule 26.08.2010
comment
спасибо, поэтому я могу получить «живой» пример с stackoverflow.com//users/rep-graph/ 341106/1273947200000/ :) - person Kevin; 28.08.2010

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

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

person pkh    schedule 24.08.2010
comment
спасибо; Я на самом деле уже видел эти примеры, но, к сожалению, ни один из них не говорит о данных, связанных со значениями графика. - person Kevin; 24.08.2010
comment
В таком случае я не понимаю вопроса. Можете ли вы уточнить, что вы находите неясным? - person pkh; 25.08.2010