1

在 dygraph 库的帮助下生成轨道时,我设置了图例:always(即使没有鼠标悬停,也会显示该特定轨道上存在系列名称的图例)。但是当我移动到某个图表时,图例会发生变化并在该特定鼠标指针处显示每个系列的值。我不想改变图例,它应该只显示系列名称而不是值。我正在使用 javascript 来实现我的应用程序。有什么方法可以做同样的事情吗?

4

4 回答 4

1

一个可能足够好的技巧是valueFormatter为每个轴提供一个自定义函数,它只返回一个空字符串:

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

这可以防止显示值,但仍会根据鼠标的位置在行样本和“:”字符之间切换。

于 2013-09-08T18:48:09.473 回答
0

目前没有简单的方法可以做到这一点。您最好的选择是使用 dygraphs 的 API 自己生成图例,或者在捕获所有鼠标事件的图表上抛出一个透明的 div。

于 2013-09-08T15:15:37.553 回答
0

您可以执行以下操作 -

第 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;
}
于 2014-04-19T21:58:06.113 回答
0

出色地!这可能不是一个好方法,但我找到了替代方法。在 dygraph.js 中声明了一个新的布尔变量,它检查用户是否希望在图例上看到 xy 值。在函数 generateLegendHTML(在 legend.js 中定义)中使用此变量,我使控件始终进入第一个 if 循环。这使得 dygraph 始终显示静态图例。

于 2013-09-12T06:03:47.330 回答