(谷歌图表)我想在鼠标悬停时在工具提示中显示折线图 Y 值
(google charts) I want to show linechart Y-value in a tooltip on mouseover?
我如何实现这样的鼠标悬停效果,以至于每当鼠标悬停在折线图上时,它都会在悬停的 X 上的工具提示中显示每行 Y 值?
那么,最后通过将鼠标移到图表上,它应该始终显示一个工具提示,该工具提示会根据更改的 X 不断更新 Y 值?现在它仅在 X 刻度步骤上显示工具提示,例如 2010、2011、2012、2013、2014...
我现在没有时间编写完整的解决方案,但我可以尝试根据您需要的与 Google 图表 API 直接相关的部分为您指明正确的方向。
没有一个简单的解决方案
首先,我想非常清楚地说明,据我所知,Google Charts API中没有内置一个简单的解决方案。您对此所做的任何操作都将涉及呈现您自己的工具提示元素,将其定位到鼠标位置,以及自己用数据填充工具提示。
你选择的JavaScript框架可能会有很大帮助。 大多数都有插件或模块来处理鼠标悬停和鼠标位置检测,尽管我不能特别推荐任何插件或模块,因为我还没有尝试过这个。
图表布局界面
获取属于鼠标位置的数据值所需的是图表布局界面。 您可以按如下方式获取此信息:
// create a line chart and set up a variable to store your interface
// on outside the scope of your ready handler, so you can use the
// interface in your mouse event code.
var layoutInterface;
var chart = new google.visualization.LineChart(document.getElementById('container-id'));
// set up a handler for the chart's ready event
// the chart layout interface is not available until the chart has
// been drawn
var readyHandler = function(){
layoutInterface = chart.getChartLayoutInterface();
};
// register the event handler
google.visualization.events.addListener(chart, 'ready', readyHandler);
我从这里的演示中学到了这一点。
您将使用布局界面上的getHAxisValue(xCoordinate)
和getVAxisValue(yCoordinate)
方法来获取与图表的 x 和 y 坐标相对应的数据值。 坐标相对于图表的容器元素。有关布局界面上可用方法的信息,请参阅折线图文档。
鼠标事件处理
其中的鼠标处理部分超出了我的知识范围,但我知道这是可能的。我认为您需要在图表的容器元素上注册一个mouse enter
事件处理程序,然后该处理程序将注册一个mouse move
,并在同一元素上注册mouse exit
。 mouse exit
将在工具提示元素上设置display:none
,并取消注册mouse move
处理程序。 mouse move
处理程序会将工具提示元素的绝对位置设置为鼠标位置,并将其内容设置为从图表布局界面检索的值。
祝你好运!
- 悬停工具提示显示详细信息 jquery
- 如何使高图工具提示显示在饼图之外
- 如何使用JS或JQuery使工具提示显示在TD悬停上
- 如何使用 d3.js 使工具提示显示在饼图扇区附近
- 如何通过 Jquery 工具提示显示图像
- 使高图工具提示显示最靠近左侧的点的信息(即在中点不更改)
- 有没有办法强制工具提示显示在输入元素的特定位置
- 高图表工具提示显示额外数据
- 在页面加载时自动对焦 dx文本框 并将 dx工具提示显示为验证消息
- 工具提示显示在第二次悬停之后
- 如何使工具提示显示在每个图像旁边
- 如何确定ng-grid中用于工具提示显示的行索引
- Imagemap:让点击区域的工具提示显示在鼠标窗口上
- 工具提示显示在随机位置
- 显示图工具提示显示x轴的最后日期值,而不是当前值
- 如何防止默认的工具提示显示在svg元素上
- twitter引导工具提示显示在modal后面
- ASP.NET 资源 resx 字符串工具提示显示帮助
- 引导工具提示显示在模态窗口后面
- 浮动工具提示显示在线形图上,而不是条形图上