Dygraph: как скрыть значение x, y в легенде?

При создании трека с помощью библиотеки dygraph я установил легенду: всегда (это отображает легенду с названием серии, присутствующим на этом конкретном треке, даже без наведения мыши). Но когда я перехожу к определенному графику, легенда меняется и показывает значение каждой серии для этого конкретного указателя мыши. Я не хочу, чтобы легенда менялась, и она должна отображать только название серии, а не значения. Я использую javascript для реализации своего приложения. Любой способ сделать то же самое?


person justcurious    schedule 07.09.2013    source источник


Ответы (4)


Один трюк, который может быть достаточно хорошим, — предоставить пользовательскую функцию valueFormatter для каждой оси, которая просто возвращает пустую строку:

axes: {x: {valueFormatter: function (x) {return ''}},
   y: {valueFormatter: function (y) {return ''}},
   y2: {valueFormatter: function (y2) {return ''}}
}

Это предотвращает отображение значений, но по-прежнему переключает образцы строк и символы ':' в зависимости от положения мыши.

person Max    schedule 08.09.2013

На данный момент нет простого способа сделать это. Лучше всего либо сгенерировать легенду самостоятельно, используя API dygraphs, либо набросить прозрачный div на диаграмму, которая фиксирует все события мыши.

person danvk    schedule 08.09.2013

Хорошо! это может быть не очень хороший способ, но я нашел альтернативу сделать это. Объявлена ​​новая логическая переменная в dygraph.js, которая проверяет, хочет ли пользователь видеть значения x-y в легенде. Используя эту переменную в функции generateLegendHTML (определенной в legend.js), я заставил элемент управления всегда идти в первом цикле if. Это заставляет dygraph всегда показывать статическую легенду.

person justcurious    schedule 12.09.2013

Вы можете сделать следующее -

Шаг 0. Добавьте несколько необходимых параметров и тегов.

labelsDiv: document.getElementById("labels"),// in the dygraph options

<div id="labels"></div> <!-- Add this somewhere in your HTML-->

Шаг 1. Объявление переменной.

var defaultLabelHTML = undefined; 

Шаг 2. Используйте параметр drawCallback.

drawCallback: function(dygraph, is_initial){
if (is_initial)
{
defaultLabelHTML = document.getElementById("labels").innerHTML;
}
},

Шаг 3 – Используйте параметр HighlightCallback –

function(e, x, pts, row) 
{
document.getElementById("labels").innerHTML = defaultLabelHTML;
}
person sriisking    schedule 19.04.2014