使用 D3.js 单击切换图例时重绘堆栈条形图

2024-04-14

我想使用 D3.js 实现带有切换图例的堆栈栏,单击图例时,堆栈栏应重新绘制。如果图例处于活动状态,则与图例对应的矩形板应消失,反之亦然。

单击图例时,我无法正确更新与组元素和组元素内存在的矩形元素绑定的数据。

在 DOM 树中,单击图例,矩形元素将被附加并添加到第一组元素,矩形元素实际上应该只更新。

您可以在中查看源代码杰斯小提琴在这里 http://jsfiddle.net/vikashkrpandey/AKt8L/16/

我想要类似于堆栈栏并实现图例选择的东西here http://nvd3.org/examples/multiBar.html in nvd3

        function redraw() {
            var legendselector = d3.selectAll("g.rect");
            var legendData = legendselector.data();
            var columnObj = legendData.filter(function(d, i) {
                if (d.active == true)
                    return d;
            });

            var remapped = columnObj.map(function(cause) {
                return dataArch.map(function(d, i) {
                    return {
                        x : d.timeStamp,
                        y : d[cause.errorType]
                    };
                });
            });

            var stacked = d3.layout.stack()(remapped);
            valgroup = stackBarGroup.selectAll("g.valgroup").data(stacked, function(d)            {
                return d;
            }).attr("class", "valgroup");

            valgroup.enter().append("svg:g").attr("class", "valgroup").style("fill",                                                             
    function(d, i) {

                return columnObj[i].color;
            }).style("stroke", function(d, i) {
                return d3.rgb(columnObj[i].color).darker();
            });

            valgroup.exit().remove();
            rect = valgroup.selectAll("rectangle");
            // Add a rect for each date.
            rect = valgroup.selectAll("rectangle").data(function(d, i) {
                return d;
            }).enter().append('rect');


            valgroup.exit().remove();

            rect.attr("x", function(d) {
                return x(d.x);
            }).attr("y", function(d) {
                return y(d.y0 + d.y);
            }).attr("height", function(d) {
                return y(d.y0) - y(d.y0 + d.y);
            }).attr("width", 6);

        }

 function redraw() did not use transition inside it 

你需要更多地了解物体恒常性 http://bost.ocks.org/mike/constancy/。 (作者描述的三种状态) 我在d3中写了一个分组图的例子,图例是可交互的并且效果很好,因为我是d3的新手,也许使用的模式或标准不是很正式。

下面列出仅供您参考,希望对您有所帮助,祝您好运:-p

fiddle http://jsfiddle.net/ramseyfeng/8790t2vk/

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

使用 D3.js 单击切换图例时重绘堆栈条形图 的相关文章

  • 使用 D3.js SVG 进行 2D 多边形布尔运算

    我有 2 个使用 D3 js 创建的简单面积图 数据和代码如下 让我们称它们为Graph A Graph B 我想用它们根据它们的相交方式创建 3 个新路径 多边形 Path 1 Graph A Graph B Path 2 Graph B
  • 如何同时使用 2 个范围滑块?

    我想使用 2 个范围滑块同时根据年龄和身高过滤表中的数据 我已经使用以下方法实现了 2 个范围滑块 年龄和身高 d3 slider js https github com MasterMaps d3 slider and a dc data
  • D3.js 如何将我的真实数据合并到饼图中

    我是 D3 和数据可视化的新手 在加载真实数据时遇到一些问题 您将在以下部分中找到我的代码 现在我有一些数据存储在数组中 现在我想做的是将数据库中的实际数据存储到饼图中 另外 如果我这样做 var mydata d3 json mydata
  • 将数据从 csv 复制到 D3 中的数组中

    我知道这个问题以前曾被问过 但由于某种原因 他们的解决方案对我不起作用 我正在尝试使用 CSV 文件中的数据填充两个数组 其中 name value alpha 34 beta 12 delta 49 gamma 89 我现在正在尝试的是
  • D3 数据对象内的循环数组

    data name c1 id 4690 day 1 3 start 8 00 end 10 00 name c3 id 5283 day 3 4 start 8 00 end 17 00 name c4 id 4862 day 4 sta
  • NVD3 - 更新数据时不均匀的刻度

    当我更新现有 NVD3 图表中的数据时 沿 x 轴的刻度不以固定间隔呈现 我正在创建一个multiBarChart数据来源于d3 json 数据表示某个日期范围内的点击次数 我有一个单独的日期范围选择器 可以更新图表的数据 我有以下内容来创
  • 为什么这个标题图形不随世界更新

    对于以下内容 我很高兴组合框默认为世界 但当收音机被点击时 我也希望标题移回 世界 我该怎么做 我有这个笨蛋 http plnkr co edit 9FXJXVqLZLPFdDrmVJez p preview http plnkr co e
  • 寻找一种重构 D3.js 风格的方法链接模式的方法

    在学习 D3 js 时 我遇到了博客文章 http bost ocks org mike chart 解释其可重用代码单元背后的主要设计模式 我复制了下面的相关代码 下面呈现的模式的方式正是在 D3 代码库和插件中使用的方式 example
  • d3.js。带条的旋转地球仪

    我正在尝试创建带有像这样的酒吧的旋转地球仪这个例子 http data arts appspot com globe 你可以看我的例子here http jsfiddle net zeleniy jrh5xucs 一切都很顺利 直到酒吧超出
  • 使用 d3.json()/d3.xhr() 进行多部分发布请求

    目前是否不支持通过请求提交多部分表单数据 我了解如何使用 d3 json post 执行 POST 如上所述here https stackoverflow com questions 12493758 xhr post request u
  • 如何在D3中导入json数据?

    如何在D3中导入json文件 I did d3 json temp json 但是我如何在进一步的代码中访问这个数据集呢 到目前为止我已经尝试过 var data d3 json temp json 但使用 data data 在其余代码中
  • 需要帮助在 D3.js 条形图中将 x 轴刻度与条形对齐

    我有一个可用的线性条形图D3 js http d3js org 它也有基于时间的 x 轴 条形图绑定到计数属性 而轴绑定到日期属性 轴上的刻度未与条形对齐 知道如何将它们两者排列起来吗 这是 jsFiddle http jsfiddle n
  • D3:如何在Groups of Force布局节点上绘制多个凸包?

    我试图在力布局中的所有组上绘制凸包 但我只画出了一半的凸包 当 D3 尝试绘制其余的船体时 控制台返回错误 元素尚未创建 然而 当我检查控制台中的 groups 变量时 所有组数据都在那里 x y 数据都设置得很好 见下图 我什至尝试在ti
  • 使用 D3.js 解析时间序列数据

    是时候寻求帮助了 我已经学习 D3 js 几个星期了 我才开始觉得我理解了其中的 10 哈哈哈 我正在尝试生成一个非常简单的线图 只要数据非常简单 我就可以做到这一点 但我的原始数据源具有 UTC 时间戳和实数 小数 这会导致任何超出简单范
  • 在 d3v4 堆积条形图中使用 JSON

    我找到了一个d3v3堆积条形图示例 http bl ocks org mstanaland 6100713我想使用它 因为它使用 json 数据 还有一个d3v4规范条形图示例 https bl ocks org mbostock 3886
  • 如何运行 D3 示例

    例如https observablehq com d3 zoomable treemap https observablehq com d3 zoomable treemap 如果将脚本片段粘贴到
  • 将元素添加到 D3 圆包节点

    我正在尝试制作一个可缩放的圆形包装图 我希望每个子圆圈包含一个较小的图表 该图表始终具有相同的结构 即 4 列 只有条形的高度会改变 我尝试添加一个简单的rect到目前为止我的图表 但矩形没有添加到圆圈中并且是静态的 JS var marg
  • 将任何 D3.js 图表与 DC.js 集成

    我试图弄清楚如何轻松地将任何 D3 js 图表与 DC js 库集成 以便在所有图表之间使用交叉过滤功能 我也确实理解以前曾问过这种性质的问题 添加链接以供参考 DC js 监听图表组渲染 https stackoverflow com q
  • D3 旭日弧尺寸

    我正在尝试根据以下示例创建 D3 旭日图 https bl ocks org maybelinot 5552606564ef37b5de7e47ed2b7dc099 https bl ocks org maybelinot 55526065
  • 使圆圈与 d3.js 上的多线匹配相同的颜色过滤?

    我有一个多线图 当按每种水果过滤时会更新 每条线条颜色对应不同的销售年份 在 的帮助下Shashank https stackoverflow com users 5569282 shashank 每个数据点线上的圆圈已添加到组中 而不是直

随机推荐

  • REQUEST_TIME 在 PHP 中意味着什么?

    是我单击 HTML 表单上的发送按钮的时间 还是它到达服务器的时间 Edit 我已经阅读了手册 谷歌搜索了其他来源 包括SO 我找到的最清晰的定义对我来说仍然含糊不清 因为我不知道请求开始其含义与下面的定义完全相同 REQUEST TIME
  • 错误 MSB6006:“cmd.exe”退出,代码为 3

    我在尝试构建使用 QT 的 C 项目时出现此错误 我已经检查了下面的链接 但用户没有说出解决方案 http social msdn microsoft com Forums en US msbuild thread 5b0be7be 1b6
  • 如何在本机 C++ 程序中托管 WCF 服务

    我有一个用 C 编程的 Windows Communication Foundation WCF 服务 我需要将其托管在我的 C MFC 本机应用程序中 无 C CLI 我不知道该怎么做 客户端也是一个 C 应用程序 谁能帮我吗 好的 如果
  • 按下操作按钮之前加载微调器

    下面是我放置旋转器加载的示例应用程序 但问题是 即使在按下操作按钮之前 旋转器就已经被看到了 实际上 只有当按下操作按钮时 它才应该出现 我知道这可以通过添加来实现eventReactive 但是有没有办法仅通过使用来实现这一点observ
  • 如果 OSX/iOS 中的网络代理设置发生更改,是否有办法接收通知/回调?

    如果 OSX iOS C C 或 Objective C 中的网络代理设置发生更改 我想收到通知 回调吗 有人有关于如何执行此操作的示例吗 监控系统配置SCDynamicStoreSetNotificationKeys 对于您需要注意的按键
  • 打开解析推送通知时出现异常[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 I setup 解析推送Android SDK 1 7 0 https parse com docs android g
  • 在 Spring 的 RequestMapping 中,{parameter:.+} 与 {parameter} 有什么不同吗?

    我正在查看一些使用 RequestMapping 的 Spring 代码 如下所示 RequestMapping foo bar 这在功能上与以下有什么不同吗 RequestMapping foo bar 据我所知 RegExp 始终应用于
  • 给定最大成本,找到具有最小成本和最大长度的路径

    我正在寻找一种算法 以在无向加权完整图中给定最大成本的情况下找到具有最小成本和最大长度的两个节点之间的路径 权重非负 就我现在而言 我正在使用 DFS 而且它非常慢 节点数量较多 长度也最大 我已经在 DFS 的每次迭代中丢弃了所有不可能的
  • 以编程方式设置文本时,如何避免出现自动完成下拉列表?

    我的布局中有一个 AutoCompleteTextView 我还有另一种方法来选择 AutoCompleteTextView 中存在的相同项目 当选择替代方式时 我通过以下方式填充 AutoCompleteTextView 中的值 auto
  • 如何在QT中发送和接收UDP数据包

    我正在 QT 中编写一个小型应用程序 它通过本地网络发送广播 UDP 数据包 并等待来自网络上的一个或多个设备的 UDP 响应数据包 创建套接字并发送广播数据包 udpSocketSend new QUdpSocket this udpSo
  • 使用 iTextSharp 压缩 PDF [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在尝试重新压缩已创建的pdf 我正在尝试找到一种方法来重新压缩文档中的图像 以减小文件大小 我一直在尝试使用 DataLogi
  • Android Studio:编译器发生异常(1.8.0_242-release)

    运行应用程序时 无法完成编译 继续抛出错误 我安装了jdk并添加了java home路径 但仍然出现此错误 另外 当我写 flutter doctor v 时我没有任何问题 请通过 Java 错误报告页面 http bugreport ja
  • 从 AOSP master 切换到 froyo

    我刚刚用 repo 检查了 master 现在我想改用froyo 我怎样才能做到这一点而不需要再次下载一堆东西 我不想再次下载一堆东西 我只是希望能够像普通的 git 克隆一样在分支之间自由移动 由于您使用 repo 下载了所有内容 因此您
  • 迭代 EnumMap#entrySet

    枚举结束Map entrySet对于所有 Map 实现 特别是 EnumMap 不能按预期工作 IdentityHashMap这是 Josh Bloch 的示例代码谜题演示 谜题 5 http strangeloop2010 com sys
  • 一次热编码期间出现 RunTimeError

    我有一个数据集 其中类值以 1 步从 2 到 2 i e 2 1 0 1 2 其中 9 标识未标记的数据 使用一种热编码 self one hot encode labels 我收到以下错误 RuntimeError index 1 is
  • Python:第二个for循环未运行

    scores surfers results f open results txt for each line in results f name score each line split scores append float scor
  • __attribute__ 是否适用于声明中的所有变量?

    是否 attribute 指令适用于在一行中声明的所有成员 int a b c 声明三个 int 变量 int a b c 将变量 a 声明为 int 指针 将 b 和 c 声明为 int int attribute used a b c
  • 如何检测 firebase firestore 数据库中的实时侦听器错误?

    火库听众 https firebase google com docs firestore query data listen将在一段时间后随机关闭 可能是由于不活动 并且在 python 中没有简单的方法来捕获它们抛出的错误 因为它们将它
  • 我需要 T-SQL 中的国家/地区列表

    我有一个国家 地区表 其中包含国家 地区名称列 我需要 DDL 中现成的列表来填充 CountryName 列 该表驻留在 SQL Server 2008 中 你可以尝试这个脚本 CREATE TABLE tbl Countries Cou
  • 使用 D3.js 单击切换图例时重绘堆栈条形图

    我想使用 D3 js 实现带有切换图例的堆栈栏 单击图例时 堆栈栏应重新绘制 如果图例处于活动状态 则与图例对应的矩形板应消失 反之亦然 单击图例时 我无法正确更新与组元素和组元素内存在的矩形元素绑定的数据 在 DOM 树中 单击图例 矩形