Этикетки с данными флота

Я пытаюсь создать линейную диаграмму с помощью Flot, но я хочу, чтобы метки данных отображались на диаграмме, то есть я хочу, чтобы значение каждой точки отображалось рядом с этой точкой. Я чувствую, что это должен быть вариант, но не могу найти его в API. Я просто что-то упускаю или кто-то знает обходной путь?

Заранее спасибо.


person Zeth    schedule 23.07.2009    source источник


Ответы (4)


Вот как я добавил эту функцию, включая приятный анимационный эффект:

var p = $.plot(...);

$.each(p.getData()[0].data, function(i, el){
  var o = p.pointOffset({x: el[0], y: el[1]});
  $('<div class="data-point-label">' + el[1] + '</div>').css( {
    position: 'absolute',
    left: o.left + 4,
    top: o.top - 43,
    display: 'none'
  }).appendTo(p.getPlaceholder()).fadeIn('slow');
});

Вы можете переместить позицию и отобразить CSS в таблицу стилей.

person tom    schedule 08.04.2010
comment
Хороший трюк, но есть ли способ сделать эти метки данных того же размера, что и отметки, и с выравниванием текста по центру? Потому что o.left + 4 не центрируется для некоторых значений. Спасибо. - person Paulo Bueno; 09.03.2012
comment
Не идеально, но работает ... Я использую горизонтальные полосы, поэтому при рендеринге значения нужно изменить el [1] на el [0]. Спасибо - person Leandro Alves; 01.06.2012
comment
У меня проблема с этим: мой o.left - NaN - person sHaDeoNeR; 31.12.2014

Запрашивается нужная функция здесь в группе Google Flot. Не похоже, что это когда-либо реализовывалось (в API нет ничего, что могло бы помещать какие-либо метки внутри самой диаграммы). Я думаю, что ответ на ваш вопрос заключается в том, что нет, в настоящее время невозможно отображать значения рядом с определенными точками на линиях внутри графика.

Оле Ларсон, главный разработчик Flot, упомянул, что отображение меток внутри диаграммы отличается от всего остального на FLot, и что им придется подумать о том, как расширить параметры API / графика для этого.

Тем не менее, вы можете задать вопрос на форуме Flot или внести предложение в системе отслеживания ошибок для новой функции. Оле Ларсон действительно хорошо умеет сам отвечать на все вопросы, ошибки и предложения.

person thewillcole    schedule 23.07.2009
comment
Тем не менее, Flot имеет открытый исходный код, поэтому вы можете написать эту функцию самостоятельно, если вы опытный разработчик JS. - person thewillcole; 24.07.2009
comment
Спасибо за это. Мой опыт разработки JS относительно минимален, но я попробую. Я также чувствую, что смогу найти обходной путь, добавив данные в блоки div с фиксированной позицией рядом с панелью (как всплывающие подсказки, но постоянно), но еще не нашел способ циклически перебирать данные, чтобы получить X и Y координаты. - person Zeth; 24.07.2009
comment
Зет, div с фиксированной позицией звучит как хорошая идея. Вам также следует взглянуть на примеры Flot (на code.google.com/p/flot), чтобы увидеть код всплывающей подсказки и код события при наведении курсора. Код подсказки может помочь в написании меток, а код события при наведении курсора может показать вам, как получить положение полос. - person thewillcole; 24.07.2009
comment
Другая идея - установить размер графика вручную, используя свойства min и max в конфигурации параметров, например: {yaxis: {min: 0, max: 10}, xaxis: {min: 0, max: 10} } (на самом деле вы можете просто получить минимальное и максимальное значение в методе форматирования тиков, см. API). Если бы вы знали размер области графика, вы могли бы нанести метки на столбцах, используя высоту и положение столбцов как координаты x, y, корректируя их в соответствии с размерами графика. - ЕСЛИ это было полезно, и вы чувствуете себя щедрым, оцените (или выберите) мой ответ и / или комментарии. Я новичок и пытаюсь набрать 250. - - person thewillcole; 24.07.2009

Если кто-то еще ищет быстрое решение, см. Этот плагин:

http://sites.google.com/site/petrsstuff/projects/flotvallab

person Ross Martin    schedule 17.02.2010

Похоже, что плагин flot-valuelabels является форком предыдущий плагин flot, но разветвленный код отображает метки на холсте. Вы можете увидеть демонстрацию того, как это выглядит на вики-странице Github плагина, здесь ( смотрится вполне радует глаз).

person Dan Esparza    schedule 02.12.2010