D3 分组条形图 - 选择整个组?

2023-12-27

我有一个类似于的分组条形图https://bl.ocks.org/mbostock/3887051 https://bl.ocks.org/mbostock/3887051
我使用鼠标悬停功能来淡化鼠标当前未悬停的栏

function mouseover(bar)
{
   d3.selectAll(".bar")
     .filter(function(d){ return (d != bar);})
     .transition(t)
        .style("opacity", 0.5);
}

虽然这可以很好地突出显示单个条,但我现在需要突出显示整个组/淡化除该组之外的所有内容。
到目前为止,我还无法弄清楚如何从数据元素中获取d通过.on("mouseover", function(d) ...返回该元素所属的整个组。
在 D3v4 中有一个简单的方法可以实现这一点吗?


在 D3 4.0 中的回调函数.on()方法传递 3 个参数 https://github.com/d3/d3-selection#handling-events:当前数据 (d)、当前索引 (i) 和当前组(节点)。

在鼠标悬停回调中,您可以selectAll("rect"),并过滤掉当前组中的项目(node)。通过此选择,您可以将不透明度设置为 0.5。鼠标移开时,您只需将所有不透明度设置回 1.0。相关代码是:

 ...
   .on('mouseover', function(d, i, node) {
    d3.selectAll("rect")
      .filter(function (x) { return !isInArray(this, node)})
      .attr('opacity', 0.5);
   }
  )
  .on('mouseout', function() {
    d3.selectAll("rect").attr('opacity', 1.0);
    });

使用一个小辅助函数来检查数组中是否存在值(在我们的例子中是 DOM 元素的数组):

 function isInArray(value, array) {
     return array.indexOf(value) > -1;
 }

上下文中的完整代码(给出您的链接示例):

g.append("g")
 .selectAll("g")
 .data(data)
 .enter().append("g")
   .attr("transform", function(d) { return "translate(" + x0(d.State) + ",0)"; })
 .selectAll("rect")
 .data(function(d) { return keys.map(function(key) { return {key: key, value: d[key]}; }); })
 .enter().append("rect")
   .attr("x", function(d) { return x1(d.key); })
   .attr("y", function(d) { return y(d.value); })
   .attr("width", x1.bandwidth())
   .attr("height", function(d) { return height - y(d.value); })
   .attr("fill", function(d) { return z(d.key); })
   .on('mouseover', function(d, i, node) {
    d3.selectAll("rect")
      .filter(function (x) { return !isInArray(this, node)})
      .attr('opacity', 0.5);
   }
  )
  .on('mouseout', function() {
    d3.selectAll("rect").attr('opacity', 1.0);
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D3 分组条形图 - 选择整个组? 的相关文章

  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • 如何在“object”标签内选择 SVG?

    HTML 页面的内容如下所示 方法如下script js looks var tooltip d3 select body append div style position absolute sty
  • d3 v4 使用 TypeScript 进行拖放

    我正在使用 D3 库 v4 和 Angular2 我想拖放 svg 元素 我有一个代码 item call d3 drag on start dragStarted on drag dragged on end dragEnded and
  • 使用什么比例仅在 d3 js 中的 x 轴上表示年份

    我一直在 D3 Js 中开发年份 x 轴 与收入 y 轴 的面积图 数据如下 localData Revenue 4 5 Year 2011 Revenue 5 5 Year 2010 Revenue 7 0 Year 2012 Reven
  • D3js 从数组而不是文件中获取数据

    我发现了这个优秀的 d3js 图表here http bl ocks org Caged 6476579 但就我而言 我希望此图表从数组而不是 tsv 文件中获取值 我想让它从表 中获取值 我怎样才能做到这一点 因为它使用一个函数来实现这一
  • 如何从此 d3.js layout.tree 获取树祖先和树后代的列表?

    我正在尝试和修改this https bl ocks org mbostock 4339083d3 js 的示例 用于根据 JSON 树结构绘制树 这就是树的一部分开始时的样子 我正在尝试进行两个单独的修改 但我不知道该怎么做 当单击节点的
  • 如何进行多个 d3 窗口大小调整事件

    我有三个svg一页上的元素 每个元素都由 D3 陪伴 每个都有自己的页面调整大小逻辑 由我写的简单模块 https github com TimeMagazine d3 base让他们做出反应 问题在于 只有最后一个调整大小事件被触发 因为
  • nvd3.js - 无法更改折线图中线条的颜色

    我正在尝试更改 nvd3 折线图不同线条的颜色here http nvd3 org livecode index html codemirrorNav但我无法理解该怎么做 我想将示例中的 2 条线的颜色更改为绿色和青色 我试过 nv add
  • D3 强制布局,较大的节点聚集在中心

    我一直在修改将用于标签云的强制布局 每个标签都由一个
  • D3 时间解析返回 null

    根据此页面上的说明 https github com mbostock d3 wiki Time Formatting https github com mbostock d3 wiki Time Formatting我正在尝试解析 ISO
  • d3 饼图中的文本被路径覆盖

    我正在尝试按照 d3 的饼图示例进行操作http bl ocks org mbostock 3887235 http bl ocks org mbostock 3887235 我的代码的最小示例 const container graph
  • 如何从 mysql 数据库中提取数据并使用 D3.JS 进行可视化?

    我有一个数据库MySQL我想在其中可视化D3 JS 为了做到这一点 首先我想parse中的数据JSON格式 然后编写一个基本代码 从数据库中提取数据并使用D3 JS 我环顾四周 但找不到我想要的东西 因为我是新手D3 JS 我怎样才能做到这
  • 使用 classed("active",true) 鼠标悬停时 D3 颜色变化

    我是 js 和 D3 的新手 我已经生成了某种热图 并且想使用 D3 的 on mouseover 更改图块的颜色 我可以显式更改颜色 但想使用 CSS 活动规则 可能是一些简单的东西可以修复 任何帮助将不胜感激 完整代码如下 Thanks
  • D3js:如何设计地形图?

    给定具有高程数据的 GIS 栅格 如何在D3js中设计地形图 有没有使用 D3js 制作的耕地地形图 地形图的示例 不工作 我探索了以下可能性 tif gt gdal contour py gt shp gt topojson gt d3j
  • SVG 文本在 IE 中消失,直到我单击它

    我在 Internet Explorer Edge 以 Win7 上的为准 中遇到与 SVG 创建和操作相关的问题 在我正在开发的应用程序中 我们使用 d3 生成 SVG 形式的图形 在 Chrome 和 Firefox 中 它们工作得很好
  • nvd3散点图中自定义无数据标签

    我正在尝试使用自定义消息而不是显示的 无可用数据 消息 我正在使用 nvd3 散点图 气泡图 我遇到了一个建议here https stackoverflow com questions 17458236 nvd3 showing empt
  • 为什么 d3.js-lasso 不读取 svg 变量

    https jsfiddle net t52f1rn7 https jsfiddle net t52f1rn7 我正在尝试制作一个线条末端有圆圈的折线图 我想选择两个点并通过单击绘制线条 然后我找到了套索插件 我尝试将它用于相同的目的 选择
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • 节点大小与 D3 中的子节点数量成正比

    我创建了这个点击 展开 折叠网络 http jsfiddle net 5Lv8gkqv http jsfiddle net 5Lv8gkqv var width 960 height 500 root name Chocolate tag

随机推荐

  • 计算平均值或将 ArrayList 作为函数的参数

    是否有内置方法来计算整数 ArrayList 的平均值 如果没有 我可以创建一个函数 通过获取 ArrayList 的名称并返回其平均值来实现此目的吗 这真的很简单 Better use a List It is more generic
  • php 获取数组的数据大小

    拥有这个数组 Array block1 gt Array list gt Array sub list gt Array links gt Number total gt Number block2 gt Array attributes
  • 如何指定 Android 模拟器应在我的开发计算机上使用哪个网络接口?

    我的开发机器同时连接到两个不同的网络 一种是通过以太网 eth0 另一种是通过 WiFi en1 在这种情况下 Android 模拟器似乎总是想要连接 eth0 上的网络 从命令行启动模拟器时 是否有一个选项可以告诉它使用开发计算机上的特定
  • java中非静态块有什么用? [复制]

    这个问题在这里已经有答案了 可能的重复 实例初始值设定项与构造函数有何不同 https stackoverflow com questions 1355810 how is an instance initializer different
  • 使用捆绑属性增强图形库

    我是 BGL 的新手 尝试使用 BGL 设置一个简单的最短路径查找程序 其中无向图被定义为具有自定义定义的 EdgeProperty 和 VertexProperty 的邻接列表 我收到编译时错误 我将其归因于我在模板和 Boost 方面的
  • spring data jpa @query 和可分页

    我正在使用 Spring Data JPA 当我使用 Queryto 定义查询WITHOUT Pageable 有用 public interface UrnMappingRepository extends JpaRepository
  • 通过instance-id获取实例

    我需要通过实例 ID 获取实例 是否可以在不请求所有实例的列表的情况下完成此操作 我试过了 ec2 conn boto connect ec2 aws access key id key aws secret access key acce
  • 如何提高winform的加载时间?

    我有一个 WinForms 应用程序 主窗体有很多控件 这也是加载速度非常慢的原因之一 我想做的是使表单加载速度更快 我已经设置了beginupdate和endupdate 该表单不会在后台工作线程中呈现 因为这是主表单 没有初始形式 当用
  • 如何控制android中的视频捕获属性?

    我正在使用以下意图捕获视频 Intent takeVideoIntent new Intent MediaStore ACTION VIDEO CAPTURE if takeVideoIntent resolveActivity getPa
  • 允许匿名访问受保护的 Subversion 存储库的部分内容

    我们目前面临的问题是允许人们访问 subversion 存储库的某些部分 1 5 x 很快是 1 6 x 而其他部分是安全的 让我给你一些细节 我们有一个生产服务器 其中许多项目都有自己的颠覆存储库 对于每个项目 我们的 Apache 配置
  • Docker Compose 与多阶段构建

    有了这个新版本 https blog docker com 2017 06 announcing docker 17 06 community edition ce Docker 引入了多阶段构建 至少我以前从未听说过 我现在的问题是 我应
  • 使用 Spring Data Rest 时如何从组件扫描中排除 @Repository

    在 Spring Boot 项目中 我在从组件扫描中排除某些存储库时遇到问题 我有一个包含一些实体和一些存储库 JpaRepositories 的库 由于某种原因 我实现了一个小型 Spring Boot Data Rest 应用程序 用于
  • 如何在 Rust 中打印 sha256 哈希值? (通用数组)

    我正在测试 sha2 箱子 https docs rs sha2 0 9 3 sha2 https docs rs sha2 0 9 3 sha2 let base2 i32 2 let total size base2 pow 24 le
  • UISearchController 推送时不会隐藏视图

    我正在使用 UISearchController 在 UITableView 中显示搜索栏和结果 我设法正确设置它 但是当我搜索结果 然后选择表视图中的一行 并将新的视图控制器推送到导航堆栈时 我希望搜索栏不再可见 但是 当我尝试此操作时
  • 将数据框列转换为存储在列表中的向量

    我的数据由许多列 变量和三行组成 每个变量都是一个整数 其值随行和列的不同而变化 下面是我的数据的一个最小示例 Minimal example of data frame I have df lt data frame x1 c 1 2 3
  • 通过 Spotify Web API 和 JavaScript 播放歌曲时出现问题

    我正在致力于构建一个与 Spotify 交互的基于 Web 的应用程序 我从 C 开始 访问 API 拉出我的播放列表并从中拉出曲目都没有问题 但似乎您无法使用位于此处的 Spotify Web API 来播放歌曲 https develo
  • 未捕获的不变违规:与之前的渲染相比,渲染了更多的钩子

    我有一个如下所示的组件 非常简化的版本 const component props PropTypes gt const allResultsVisible setAllResultsVisible useState false const
  • 捕获特定 jQuery Mobile 页面上的滚动事件

    如何捕获特定 jQuery Mobile 页面上的滚动事件 Page div div ul ul div div 在 pagebeforecreate 上 动态加载无序列表内的项目 for var i 0 i lt 100 i ul add
  • 如何从服务访问当前登录用户的 HKCU 注册表?

    我想在 Windows 服务中检查存储在每个用户的 HKCU 注册表区域中的一些用户首选项 我怎样才能做到这一点 我看到 HKEY USERS 具有已登录到计算机的每个用户的子项 或类似的东西 并且在这些子项中是每个用户的 HKCU 区域
  • D3 分组条形图 - 选择整个组?

    我有一个类似于的分组条形图https bl ocks org mbostock 3887051 https bl ocks org mbostock 3887051我使用鼠标悬停功能来淡化鼠标当前未悬停的栏 function mouseov