javascript - 在 Dimple.js 中向行添加工具提示

标签 javascript d3.js tooltip dimple.js

我使用 Dimple 的线图作为基础创建了简化的网络样式图表。示例:http://jsfiddle.net/cc1gpt2o/

  myChart.addCategoryAxis("x", "Entity");
  myChart.addCategoryAxis("y", "Entity").addOrderRule("Keyword");
  var z = myChart.addMeasureAxis("z", "Size");
  z.overrideMin = 0;
  z.overrideMax = 200;
  myChart.addSeries("Keyword", dimple.plot.line);
  myChart.addSeries("Keyword", dimple.plot.bubble);
  myChart.draw();

但是,折线图的工具提示仅在将鼠标悬停在点上时显示。由于有很多重叠点,用户很难识别线和值。如果用户将鼠标悬停在点之间的线上时可以看到工具提示,那将是最好的。

我找到了一种 D3 方法,该方法将线一分为二以显示有关点的信息,但它似乎太复杂而无法应用于我正在使用的设置: - http://www.d3noob.org/2014/07/my-favourite-tooltip-method-for-line.html

在我深入探讨该解决方案之前,在 Dimple 中是否有更简单的方法来执行此操作? (——例如,将圆圈的工具提示功能应用到路径上?)

最佳答案

不幸的是,据我所知,series.addEventHandler('mouseover', handler) 只会在您越过线条的点时触发,所以并不比默认功能好。要定位行本身,您必须使用常规 d3 :

chart.series[0].shapes.on('mouseover', function(e){
   //handle
   // `e` is data from line
   // d3.event has mouse position data
});

您可以在该事件对象中获取有关线路本身的信息(与该线路相关的数据)。不幸的是,它与 dimple.eventArgs 对象的数据不同,因此您将无法使用 dimple._showPointTooltip 或其他工具提示方法(我不认为无论如何都会起作用)。

您还可以在该处理程序函数内从 d3.event 获取有关 x 和 y 鼠标位置的信息。结合这两个对象的信息应该可以让您在当前鼠标位置放置自定义工具提示,并且您可以将其样式设置为看起来像标准的酒窝工具提示。

我不太确定的是如何获得鼠标所在位置的原始对应值。我相信它应该是这样的:

chart.series[0].y._scale.invert(d3.event.y);

但在我有限的测试中,我无法让它正常工作。也许这在任何情况下都是一个有用的开始。

关于javascript - 在 Dimple.js 中向行添加工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26612936/

相关文章:

javascript - axios:多个文件上传的上传进度

tooltip - 如何创建显示 Altair 中字段的多个值的工具提示?

javascript - 单击浏览器上的链接打开桌面应用程序

ruby-on-rails - ruby on rails web 应用程序的第三方 API 数据

javascript - 如何将鼠标单击 x 值转换为 d3 中 x 轴域中的值?

javascript - 基本 d3js max 返回多个值

javascript - Kendo 工具提示相对于鼠标位置?

html - 工具提示被 div 容器截断

javascript - Jquery 动画不工作。我需要在表格中添加一行动画

javascript - 同一js文件中未定义的函数