Маркер ( jquery-jqplot) с 3 значениями (вместо 2)
Я использую плагин jquery jqplot. У меня есть кортеж с тремя элементами, на графике первый элемент кортежа - это xaxis, а yaxis - второй элемент. Маркер должен показывать x, y и третий элемент кортежа. Что-то вроде:
curve1=[**[x,y,date],** [1, 2,'28-May-11'], [2, 4,'30-May-11'], [3,7,'31-May-11']];
Маркер показывает: (1 , 2 , '28-May-11')
по первому пункту, (2,4,'30-May-11')
на втором...
Есть идеи?
1 ответ
Одно решение включает в себя небольшую модификацию jqplot.highlighter.js
в showTooltip
метод. В этом методе следующая строка используется для назначения html элементу подсказки:
elem.html(str);
Для ваших целей вы можете переопределить это назначение следующим образом:
elem.html('(' + neighbor.data[0] + ', ' + neighbor.data[1] + ', ' + neighbor.data[2] + ')');
так как соседние данные используются для представления вашего кортежа, содержащего 3 значения: x, y и date.
С другой стороны...
Более универсальное решение позволило бы динамически генерировать текст всплывающей подсказки из внешнего интерфейса (вместо того, чтобы иметь дело с фиксированной стратегией форматирования внутри highlighter.js
). В этом случае вы можете заменить вышеуказанное изменение следующим:
elem.html(neighbor.data[2]);
А затем измените третий элемент вашего кортежа с даты (которая, как я предполагаю, используется только для целей всплывающей подсказки) на сам текст подсказки.
Например, ваш кортеж может выглядеть так:
curve1=[ [1, 2, '(1, 2, 28-May-11)'], [2, 4, '(2, 4, 30-May-11)'], [3,7, '(3, 7, 31-May-11)'] ];
или даже это:
curve1=[ [1, 2, 'On 28-May-11 there were 2 instances.'], [2, 4, 'Then on 30-May-11 there were 4.'], ...];
Надеюсь, это поможет.