在 dc.js 中显示鼠标悬停时的附加数据属性

2024-03-18

我想在 dc.js 中的鼠标悬停时显示其他数据标签和值(x 轴和 y 轴除外)。下面是数据和图表代码。

var people = [
  {
    "id": 1,
    "name": "Damaris",
    "gender": "Female",
    "DOB": "1973-02-18",
    "MaritalStatus": "false",
    "CreditCardType": "visa-electron"
  },
  {
    "id": 2,
    "name": "Barbe",
    "gender": "Female",
    "DOB": "1969-04-10",
    "MaritalStatus": "true",
    "CreditCardType": "americanexpress"
  },
  {
    "id": 3,
    "name": "Belia",
    "gender": "Female",
    "DOB": "1960-04-16",
    "MaritalStatus": "false",
    "CreditCardType": "maestro"
  },
  {
    "id": 4,
    "name": "Leoline",
    "gender": "Female",
    "DOB": "1995-01-19",
    "MaritalStatus": "true",
    "CreditCardType": "bankcard"
  },
  {
    "id": 5,
    "name": "Valentine",
    "gender": "Female",
    "DOB": "1992-04-16",
    "MaritalStatus": "false",
    "CreditCardType": ""
  },
  {
    "id": 6,
    "name": "Rosanne",
    "gender": "Female",
    "DOB": "1985-01-05",
    "MaritalStatus": "true",
    "CreditCardType": "bankcard"
  },
  {
    "id": 7,
    "name": "Shalna",
    "gender": "Female",
    "DOB": "1956-11-01",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 8,
    "name": "Mordy",
    "gender": "Male",
    "DOB": "1990-03-27",
    "MaritalStatus": "true",
    "CreditCardType": "china-unionpay"
  },
  {
    "id": 9,
    "name": "Tristan",
    "gender": "Male",
    "DOB": "1998-10-05",
    "MaritalStatus": "true",
    "CreditCardType": ""
  },
  {
    "id": 10,
    "name": "Alphonso",
    "gender": "Male",
    "DOB": "1992-08-10",
    "MaritalStatus": "false",
    "CreditCardType": "mastercard"
  },
  {
    "id": 11,
    "name": "Hirsch",
    "gender": "Male",
    "DOB": "1973-02-13",
    "MaritalStatus": "false",
    "CreditCardType": ""
  },
  {
    "id": 12,
    "name": "Kirstyn",
    "gender": "Female",
    "DOB": "1989-06-28",
    "MaritalStatus": "false",
    "CreditCardType": "bankcard"
  },
  {
    "id": 13,
    "name": "Benson",
    "gender": "Male",
    "DOB": "1959-10-19",
    "MaritalStatus": "true",
    "CreditCardType": "switch"
  },
  {
    "id": 14,
    "name": "Florry",
    "gender": "Female",
    "DOB": "1993-11-11",
    "MaritalStatus": "true",
    "CreditCardType": "diners-club-international"
  },
  {
    "id": 15,
    "name": "Jenine",
    "gender": "Female",
    "DOB": "1957-02-16",
    "MaritalStatus": "false",
    "CreditCardType": "diners-club-enroute"
  },
  {
    "id": 16,
    "name": "Hortense",
    "gender": "Female",
    "DOB": "1993-12-17",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 17,
    "name": "Zulema",
    "gender": "Female",
    "DOB": "1990-09-27",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 18,
    "name": "Leoline",
    "gender": "Female",
    "DOB": "1990-02-02",
    "MaritalStatus": "false",
    "CreditCardType": "visa-electron"
  },
  {
    "id": 19,
    "name": "Bayard",
    "gender": "Male",
    "DOB": "1997-01-11",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 20,
    "name": "Joanne",
    "gender": "Female",
    "DOB": "1996-02-01",
    "MaritalStatus": "false",
    "CreditCardType": "maestro"
  },
  {
    "id": 21,
    "name": "Marlee",
    "gender": "Female",
    "DOB": "1994-11-28",
    "MaritalStatus": "false",
    "CreditCardType": ""
  },
  {
    "id": 22,
    "name": "Mitchell",
    "gender": "Male",
    "DOB": "1993-03-09",
    "MaritalStatus": "false",
    "CreditCardType": "maestro"
  },
  {
    "id": 23,
    "name": "Jefferey",
    "gender": "Male",
    "DOB": "1999-09-19",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 24,
    "name": "Jolee",
    "gender": "Female",
    "DOB": "1951-04-14",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 25,
    "name": "Selma",
    "gender": "Female",
    "DOB": "1958-08-14",
    "MaritalStatus": "false",
    "CreditCardType": "mastercard"
  },
  {
    "id": 26,
    "name": "Pavlov",
    "gender": "Male",
    "DOB": "1971-12-24",
    "MaritalStatus": "true",
    "CreditCardType": "jcb"
  },
  {
    "id": 27,
    "name": "Willi",
    "gender": "Male",
    "DOB": "1999-09-29",
    "MaritalStatus": "false",
    "CreditCardType": "diners-club-enroute"
  },
  {
    "id": 28,
    "name": "Vi",
    "gender": "Female",
    "DOB": "1988-09-25",
    "MaritalStatus": "false",
    "CreditCardType": "laser"
  },
  {
    "id": 29,
    "name": "Teodoro",
    "gender": "Male",
    "DOB": "1969-03-02",
    "MaritalStatus": "false",
    "CreditCardType": "jcb"
  },
  {
    "id": 30,
    "name": "Loralyn",
    "gender": "Female",
    "DOB": "1953-11-27",
    "MaritalStatus": "false",
    "CreditCardType": ""
  }
]

var chart = dc.lineChart('#line');


          var mycrossfilter = crossfilter(people);

            var ageDimension = mycrossfilter.dimension(function(data) { 
               return [~~((Date.now() - new Date(data.DOB)) / (31557600000))] 
            });
            var ageGroup = ageDimension.group().reduceCount();

            chart
               .width(800)
               .height(300)
               .x(d3.scale.linear().domain([15,70]))
               .brushOn(false)
               .yAxisLabel("Count")
               .xAxisLabel("Age")
               .dimension(ageDimension)
               .group(ageGroup) ;                           
            chart.render();

工作示例可以在以下网址中找到:

https://jsfiddle.net/ah3qdecr/34/ https://jsfiddle.net/ah3qdecr/34/

当我将鼠标悬停在交点(x 轴和 y 轴的点)上时,我希望所有属性的工具提示信息以标签:值格式显示(例如:姓名:Damaris、性别:男、ID:1)。另外,我希望在鼠标悬停时更改提示的颜色(作为突出显示)。 我使用过 title()、工具提示、d3 提示,但无法获得所需的输出。

有人可以帮忙吗?


您将为您的身体和 svg 画布内的圆圈添加一个事件处理程序:

d3.select('body').on('mouseover', function() {
  d3.selectAll('circle.dot')
    .on("mouseover", function(d) {
    div.transition()
      .duration(200)
      .style("opacity", .9);
    div.html(d) // Here is the output of the data
      .style("left", (d3.event.pageX) + "px")
      .style("top", (d3.event.pageY - 28) + "px");
  })
    .on("mouseout", function(d) {
    div.transition()
      .duration(500)
      .style("opacity", 0);
  });
});

然后您必须添加工具提示并将其附加到正文中:

var div = d3.select("body").append("div")
  .attr("class", "tooltip")
  .style("opacity", 0);

最后但并非最不重要的是,这里是工具提示样式的示例:

div.tooltip {
  position: absolute;
  text-align: center;
  width: 60px;
  height: 28px;
  padding: 2px;
  font: 12px sans-serif;
  background: rebecca;
  border: 0px;
  border-radius: 8px;
  pointer-events: none;
}

现在您已经有了一个可用的工具提示,但您的问题根本在于圆圈内缺少数据。您是否尝试过用剩下的数据来丰富您的观点?

基于您的小提琴的工作示例:https://jsfiddle.net/ah3qdecr/58/ https://jsfiddle.net/ah3qdecr/58/

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

在 dc.js 中显示鼠标悬停时的附加数据属性 的相关文章

随机推荐

  • 隐藏变量在 R 中如何表现?

    是否有任何重要的 1 原因不导出名称为 fnname在 R 包中 我知道点前缀变量的主要用途是在使用以下函数搜索环境时将变量表示为隐藏ls 并表示对象或列表中的字段应被视为私有字段 如 S4 Data 字段 test env lt new
  • 读取 read_csv2(readr 包)中的行名称

    我正在尝试从这里加载示例数据集 http www agrocampus ouest fr math RforStat decathlon csv http www agrocampus ouest fr math RforStat deca
  • JavaScript 中的 split()

    我有代码 function filter var url window location alert url alert url split 1 当我启动它时 我只收到一条警报消息 http localhost 8000 index 3 1
  • 找不到 Spring MVC Neo4jConfiguration 类

    我正在学习 Spring MVC 我想扩展 Neo4jConfiguration 类 但它不可用 我导入了以下依赖项
  • 我无法登录 Tomcat Manager 应用程序

    我在 stackoverflow 上阅读了很多主题来解决我的问题 但没有一个有用 当我尝试使用很多不同的配置登录管理器应用程序 http localhost 8080 manager html 1 时 但我总是获得401 未经授权尝试使用权
  • SQL 约束/触发器 - 是否可以编写一个约束来检查“插入记录时它必须包含两个字段之一”?

    是否可以对输入的记录设置约束 触发器 以检查用户是否至少输入了三个字段之一 所有字段都可以为空 例如 我有一个数据库用于跟踪其他软件中的错误和新功能 当发现错误时 会创建一个功能记录 该记录可以具有三个外键 discoveredID fix
  • 如何匹配字符串中的第一个单词?

    我想匹配这个词 St or St or st or st 但只能作为字符串的第一个单词 例如 St Mary Church Church St 应该首先找到 St st Mary Church Church St 应该只找到 st st M
  • 为什么这个隐式函数没有被应用?

    尝试 Alexey Romanov 中提出的 TupleN 的隐式转换如何在元组之间应用隐式转换 https stackoverflow com questions 23911151 how to apply implicit conver
  • 跨不同项目设置发布/订阅订阅?

    在我的 GCP 项目 项目A 我创建了一个 Pub sub 主题 topicA 并且在此发布 订阅主题中发布的消息需要在其他 GCP 项目 项目B 通过订阅 订阅B 推荐的设置方式是什么订阅B Define 订阅B在项目 A 中 并使用适当
  • 双显示器中的 Delphi XE Form 和 Source

    有人知道我是否可以将 IDE 设置为在一个显示器和另一个显示器上显示源代码 我谈论相同的 pas 因为我可以在每个监视器中查看 2 个不同的 pas 不确定 XE 但在 2007 年你可以去Tools gt Options打开选项对话框 然
  • Windows 窗体旋转

    当您在 Net 中创建表单时 它会显示为纵向布局的对话框 通常没有人喜欢横向或颠倒地阅读 但我有一个非常充分的理由旋转表格 有人知道如何在 Windows Vista 上用 C 实现这一点吗 必须在 WinForms 中吗 在 WPF 中
  • Backbone.js 在填充集合后调用渲染

    我试图在获取集合后调用渲染 在我的初始化方法中 我有 this collection bind all this render this this collection fetch 在 IE 中 有时它似乎会在集合有数据之前尝试渲染 集合似
  • 如何将活动 Excel 工作簿附加到电子邮件

    我整个上午都在尝试获取此 VBA 脚本 将我的活动 Excel 文档附加到自动生成的 Outlook 消息中 如果我将文件路径声明为字符串并附加它 一切都会正常工作 除了我想附加当前 Excel 文档的完整文件路径而不是使用静态字符串值 这
  • 优化 boost::spirit::qi 解析器

    我有一个解析器 它基本上打印出堆栈机的操作 并根据给定的运算符优先级给出一些表达式 我的目标是尽可能优化速度 我读过了一篇关于 qi 优化的文章 https code google com p scribblings by apoch wi
  • Bash - 变量变量[重复]

    这个问题在这里已经有答案了 我有变量 foo something 并想使用 bar foo echo bar 得到 某事 的回应 在 bash 中 您可以使用 variable 使用可变变量 foo something bar foo ec
  • 查找具有 minidom 属性的元素

    Given
  • Python列表理解删除重复项

    我想要独特的元素hubcode list 我可以这样做 hubcode alarm obj HubAlarm objects all for obj in hubcode alarm obj hubcode obj hubcode if h
  • 为什么占用临时地址是非法的?

    我知道下面写的代码是非法的 void doSomething std string s int main doSomething std string Hello World return 0 原因是我们不允许获取临时对象的地址 但我的问题
  • 使用 pandas 读取 csv 时设置列类型

    尝试阅读csv文件到pandas具有以下格式的数据框 dp pd read csv products csv header 0 dtype name str review str rating int word count dict eng
  • 在 dc.js 中显示鼠标悬停时的附加数据属性

    我想在 dc js 中的鼠标悬停时显示其他数据标签和值 x 轴和 y 轴除外 下面是数据和图表代码 var people id 1 name Damaris gender Female DOB 1973 02 18 MaritalStatu