向 Google Visualization LineChart 添加一个垂直线标记,当鼠标移动时该标记也会移动?

2024-03-16

是否可以在 LineChart 上显示垂直线标记,显示当前 x 轴值,并在鼠标移动时移动?

提前致谢。


虽然这在以前很困难,但最近 API 的更新使其变得更加容易!您需要使用鼠标悬停事件处理程序来获取鼠标坐标,并使用新的 ChartLayoutInterface 将坐标转换为图表值。这是一些示例代码:

[编辑-修复了跨浏览器兼容性问题] *[编辑 - 更新以获取注释线附近的点的值]*

function drawChart() {
    // Create and populate the data table.
    var data = new google.visualization.DataTable();
    data.addColumn('number', 'x');
    // add an "annotation" role column to the domain column
    data.addColumn({type: 'string', role: 'annotation'});
    data.addColumn('number', 'y');

    // add 100 rows of pseudorandom data
    var y = 50;
    for (var i = 0; i < 100; i++) {
        y += Math.floor(Math.random() * 5) * Math.pow(-1, Math.floor(Math.random() * 2));
        data.addRow([i, null, y]);
    }
    // add a blank row to the end of the DataTable to hold the annotations
    data.addRow([null, null, null]);
    // get the index of the row used for the annotations
    var annotationRowIndex = data.getNumberOfRows() - 1;

    var options = {
        annotation: {
            1: {
                // set the style of the domain column annotations to "line"
                style: 'line'
            }
        },
        height: 400,
        width: 600
    };

    // create the chart
    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));

    // create 'ready' event listener to add mousemove event listener to the chart
    var runOnce = google.visualization.events.addListener(chart, 'ready', function () {
        google.visualization.events.removeListener(runOnce);
        // create mousemove event listener in the chart's container
        // I use jQuery, but you can use whatever works best for you
        $('#chart_div').mousemove(function (e) {
            var xPos = e.pageX - container.offsetLeft;
            var yPos = e.pageY - container.offsetTop;
            var cli = chart.getChartLayoutInterface();
            var xBounds = cli.getBoundingBox('hAxis#0#gridline');
            var yBounds = cli.getBoundingBox('vAxis#0#gridline');

            // is the mouse inside the chart area?
            if (
                (xPos >= xBounds.left || xPos <= xBounds.left + xBounds.width) &&
                (yPos >= yBounds.top || yPos <= yBounds.top + yBounds.height) 
            ) {
                // if so, draw the vertical line here
                // get the x-axis value at these coordinates
                var xVal = cli.getHAxisValue(xPos);
                // set the x-axis value of the annotation
                data.setValue(annotationRowIndex, 0, xVal);
                // set the value to display on the line, this could be any value you want
                data.setValue(annotationRowIndex, 1, xVal.toFixed(2));

                // get the data value (if any) at the line
                // truncating xVal to one decimal place,
                // since it is unlikely to find an annotation like that aligns precisely with the data
                var rows = data.getFilteredRows([{column: 0, value: parseFloat(xVal.toFixed(1))}]);
                if (rows.length) {
                    var value = data.getValue(rows[0], 2);
                    // do something with value
                }

                // draw the chart with the new annotation
                chart.draw(data, options);
            }
        });
    });

    // draw the chart
    chart.draw(data, options);
}

在这里查看它的工作情况:http://jsfiddle.net/asgallant/tVCv9/12 http://jsfiddle.net/asgallant/tVCv9/12

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 Google Visualization LineChart 添加一个垂直线标记,当鼠标移动时该标记也会移动? 的相关文章

  • 如何在VBA中获取图表所有系列的源数据?

    With ActiveWorkbook Sheets 1 INSPECT CHARTS NUMBER ChartObjects Count For c 1 To ChartObjects Count Set INSPECT CHART Ch
  • 使图表 js 中的标签响应式

    我很难使 y 轴上的标签响应 我希望标签移动到多行 并在空间不足时具有响应式字体大小 我正在使用 Chart js 数据标签库进行标签在水平条形图的顶部 由于外部图表容器 标签也被隐藏 var chart new Chart ctx typ
  • 想要在谷歌饼图图例中显示百分比数据

    I am using google charts API specifically pie chart in my code i want to show percentage which is displayed inside chart
  • 如何在 Xamarin Forms 的 Microchart 中添加 2 行

    我现在正在使用 Xamarin Forms 并尝试使用 Microchart 我想在一个折线图中显示 2 条线 以便我可以比较它们 但现在我不能在一张图表中同时放入2条线 有什么解决办法吗 非常感谢 你可以使用 hack 独立创建两个图表并
  • Google 图表 - “缺少请求 ID 的查询:0”

    仅当我尝试将两个图表放在同一页面上时才会出现此错误 如果这两个图表是页面上唯一的图表 则它们可以完美地工作 在我添加第二个的那一刻 仅加载第一个 并且出现 缺少请求 id 的查询 0 错误 这是我的图表 js 文件 function dra
  • 谷歌折线图:如何添加单位?

    https google developers appspot com chart interactive docs gallery linechart Example https google developers appspot com
  • 数据与线的日期和时间转换

    我使用 D3 V5 创建了此图表 另外 我已在小提琴上附加了示例数据 您可以点击此处查看 https plnkr co edit pINxcS9yt9AuJmSk02Fs p preview 我已经包括了tick函数代码块 它在向左滑动的路
  • Javafx-场景快照不显示值和系列

    我制作了一个非常短的应用程序 它使用 javafx 生成图表 应用程序显示正确的值 图表 但当我做快照时 图像仅显示轴和标签 但不显示系列和值 stage setTitle Line Chart Sample final DateAxis
  • 显示 am4charts.XYChart 中的所有工具提示

    大家好 我正在使用 am4charts XYChart 来显示两个不同供应商的价格 该图表工作正常 并且仅当我们将光标悬停在图表中的点上时 每个点的工具提示才可见 但是我的要求是在渲染图表时应显示图表中所有点的工具提示 它应该一直显示而不悬
  • Winforms Chart - 在折线图上绘制允许的区域

    如何在图表上绘制灰色区域 信号的允许范围 我使用 Winforms 和标准 MicrosoftSystem Windows Forms DataVisualization类 它应该是自定义范围 这意味着起始 Y 点不能仅为零 我在运行时在线
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做
  • 如何更改 Google 表格中图表的背景不透明度?

    我想在 Google 表格中设置 Google 图表的透明度或不透明度 就像在 Microsoft Excel 中一样 将图像设置在文本后面 以便文本仍然可读 不过好像该功能不起作用 功能预览 http drive google com f
  • 图表无法在 Xcode 14 上编译

    我在图书馆中面临以下错误 Type 图表数据集 不符合协议 范围可替换集合 实例方法不可用 替换Subrange with 用于满足协议的要求 范围可替换集合 将其附加到扩展 ChartDataSet RangeReplaceableCol
  • 使用chartJS显示带有连接点的折线图

    我想使用 ChartJS 绘制这样的图表 但我找不到连接第一个和最后一个点并在该连接区域内显示单个唯一点的解决方案 我还需要用不同的颜色设置每个点的样式 我尝试探索 ChartJS 文档但找不到解决方案 是否有任何图表绘制库具有这些功能或如
  • excel中的多轴折线图

    我正在寻找类似于下图中的多轴折线图 这是由 amcharts 制作的 JavaScript 图表 excel有没有可以绘制图表的选项 请注意 有 3 个 Y 轴和 3 个折线图 可让您比较数据 是否有可能获得超过 3 个数据点 每个数据点在
  • D3.js分组条形图

    I am making a bar chart using D3 js like this source statcan gc ca http www statcan gc ca pub 12 593 x 2007001 figures f
  • MS图表烛台如何设置尾部颜色

    我目前正在使用 Visual C 中的 mschart 开发烛台图 我现在创建了两个图表 创建的图表如下 问题 1 查看顶部的蜡烛图 我想将每根杆的尾部颜色应用为红色或蓝色 问题 2 查看底部的条形图 我想对此图表应用红色或蓝色 我想将相同
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • 如何在同一个html上绘制2个谷歌图表

    我正在尝试下面的代码 但它仅显示第一个代码的图表 你能告诉我哪里出错了吗 我尝试做很多改变 但仍然没有成功 i am only getting single chart as shown in below photo enter code
  • Apexcharts 项目栏上的最大宽度

    如何更改 Apexcharts 中项目栏的最大宽度 高度 https apexcharts com https apexcharts com 我有一个水平条形图 其数据是动态加载的 并且用户 项目 的数量各不相同 当用户很少或只有一个用户时

随机推荐

  • Visual Studio 2013 上缺少“Ado.Net 实体数据模型”

    我已经创建了新的 Web 项目 但找不到 ADO net 实体数据模型来添加它 如何修复或安装 转到 C ProgramData Package Cache 并搜索 EFTools msi 您应该找到两个文件 只需安装最新的一个 大约 96
  • 如何有效地将一组数字拟合到预定分布中

    假设我有一组数字 我想根据预定的分布对它们进行求和以适合队列 一个简单的例子是 如果一组数字的累积量为 100 并且队列 1 2 和 3 的分布分别为 0 2 0 3 0 5 那么我想找到总和为 20 的数字子集 另一个总和为 30 的唯一
  • Active_support/dependency.rb:247 `require': 无法加载此类文件 -- 2.1/pg_ext (LoadError)

    我在 Windows 机器上使用 Ruby 2 1 5 Rails 4 1 6 和 PostgreSQL 9 3 5 当我尝试bundle exec rails server 我最终出现以下错误 DL is deprecated pleas
  • React - 自动完成调用 API

    我正在使用 Material UI 自动完成组件在返回 JSON 的方法中进行 API 调用 这个想法是 当用户输入自动完成组件时 它会调用以查找与字符串匹配的结果 我输入的代码存在的问题是我不知道如何进行 API 调用并在自动完成组件中返
  • 更改 wsdl: 部件名称

    有什么办法可以改变nameWSDL 中的消息部分 我的 WSDL 上有这个
  • 显示 Grails 字段错误

    有谁知道我怎样才能得到fieldError在下面的示例中打印出来 对于每个有错误的项目 我想打印我在 messages properties 文件中定义的自定义错误消息 目前所做的只是打印默认错误代码 item errors allErro
  • 使用 Java 添加 Soap 操作标头

    如何在 java util soap 中添加肥皂操作标头我使用 SoapUI 测试了该服务
  • 我可以在 Sublime Text 2 中保存折叠的代码吗?

    有代码我可以忘记所有看起来不错 但是 关闭文件并重新打开它后 我怎样才能折叠这段我多年都不会编辑的代码 希望如此 并无限期地隐藏它 我觉得缓冲区滚动 https github com SublimeText BufferScroll插件会做
  • EAR包结构

    我正在创建一个带有 1 个 war 文件 appWeb war 是我的 Web 模块 和几个 jar 文件的 EAR 这些 jar 文件不是 EJB 我们选择根据应用程序的逻辑分离创建不同的 jar 文件 例如 model jar 包含所有
  • 遍历 Racket 中的字母表中的字母

    我想编写一个程序 将字母表中的字母作为符号进行迭代 并用它们做一些事情 我希望它大致相当于以下 C 代码 for char letter a letter lt z letter printf The letter is c n lette
  • 使用 SortDescription 时将字符串日期转换为日期

    我的 WPF 应用程序使用XMLDataProvider为其数据 XML 文件有一个
  • 如何从 coredata (实体)ios swift 中删除行

    我是我的应用程序中的核心数据新手 我正在使用 coredata 我只是将数据存储在我的核心数据中 我的实体名称是 FEED 我有一些名称为 title id link desc 的行 所以现在我想根据 id 删除特定行 那么我该怎么做呢 这
  • 方法链接的影响

    我知道 PHP 中链接的好处 但假设我们有以下情况 Mail new MailClass mail gt SetFrom X gt SetTo X gt SetSubject X gt AddRecipient X gt AddRecipi
  • 请求正文为空

    我生成了两个项目 一个使用 create react app 另一个使用 Express 生成器 我运行第一个localhost 3000第二个是localhost 3001 我正在尝试发送 POST 请求 但收到一个空的请求req bod
  • Java 中的 main 方法可以返回一些东西吗?

    我最近参加了一次面试 他们问了我两个关于 Java 核心的问题 Q 1 我们可以编写一个java类吗 public static int main String args System out println Hello 我回答 不 编译器
  • onTouchEvent 中的 CoordinatorLayout NullPointerException

    我正进入 状态NullPointerException in onTouchEvent of CoordinatorLayout 我在用DrawerLayout with CollapsingToolbarLayoutandroid支持Ap
  • 测试浏览器中对 Overflow-y:auto 的支持

    我想测试浏览器是否支持特定的 css 属性 对于 css 属性 我可以这样做 var overflowSupport document createElement detect style overflow y 但是如果我必须检查特定的类或
  • 如何将 ssh 作业发送到后台

    我通过 ssh 登录到远程服务器并启动了一个 php 脚本 看起来需要 17 个小时才能完成 有没有办法断开连接但保持脚本执行 我没有进行任何输出重定向 所以我看到了所有输出 您现在可以停止该过程吗 如果是这样 启动screen http
  • Powershell - Outlook 将所有邮件标记为已读然后删除

    试图解决这个问题时遇到一些问题 由于某种原因 我的脚本无法正常工作 它应该将收件箱文件夹中的所有邮件标记为已读 然后删除它们 但是 当脚本运行时 它只会删除 count emails 显示的一半 怎么解决这个问题 我是不是做错了什么 out
  • 向 Google Visualization LineChart 添加一个垂直线标记,当鼠标移动时该标记也会移动?

    是否可以在 LineChart 上显示垂直线标记 显示当前 x 轴值 并在鼠标移动时移动 提前致谢 虽然这在以前很困难 但最近 API 的更新使其变得更加容易 您需要使用鼠标悬停事件处理程序来获取鼠标坐标 并使用新的 ChartLayout