更新拉丝面积图的 y 轴

2023-12-24

我正在使用 d3.js,并且我正在通过修改来处理拉丝面积图这个例子 http://bl.ocks.org/1667367。除了根据画笔改变 x 轴之外,我还希望根据画笔内数据的 y 值重新绘制图表的 y 轴(类似于).

我已经使该功能正常工作,但只是以一种能够在 x 和 y 空间中绘制画笔的方式。我通过首先添加 y 比例来做到这一点brush多变的:

var brush = d3.svg.brush()
    .x(x2)
    .y(y2)
    .on("brush", brush);

这使得brush.extent()返回以下多维数组:[ [x0, y0], [x1, y1] ]。然后我在中使用这些数据brush()函数重新定义焦点图的 x 和 y 域:

function brush() {
  var extent = brush.extent();
  x.domain(brush.empty() ? x2.domain() : [ extent[0][0], extent[1][0] ]);
  y.domain(brush.empty() ? y2.domain() : [ extent[0][1], extent[1][1] ]);
  focus.select("path").attr("d", area);
  focus.select(".x.axis").call(xAxis);
  focus.select(".y.axis").call(yAxis);
}

这是可行的,但通过在画笔变量中定义 y 比例,用户现在可以拖动焦点图表中的“框”,而不是像原始图表中那样只能从西向东拖动。

本质上,我的问题是:如何获取画笔区域内的值范围,而不是画笔区域本身的范围?这可能吗?

d3的刷机文档是here https://github.com/mbostock/d3/wiki/SVG-Controls#wiki-brush.


我想出了一个解决方案。

我使用刷式过滤的 x.domain 来过滤我的原始数据集。这个新的过滤数据集仅包含属于画笔的值:

// Use x.domain to filter the data, then find the max and min duration of this new set, then set y.domain to that
  x.domain(brush.empty() ? x2.domain() : brush.extent());
  var dataFiltered = data.filter(function(d, i) {
    if ( (d.date >= x.domain()[0]) && (d.date <= x.domain()[1]) ) {
      return d.duration;
    }
  })
  y.domain([0, d3.max(dataFiltered.map(function(d) { return d.duration; }))]);

最后,请务必重新绘制 y 轴和 x 轴:

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

更新拉丝面积图的 y 轴 的相关文章

  • 在 Power BI 自定义视觉对象中使用 d3.js 库绘制一条线

    我正在努力在 Power BI 自定义视觉对象中绘制一条单线 Power BI 中的报表是使用 TypeScript 和 d3 js v 3 0 编写的 我可以用轴绘制图表 但没有出现线条 在 HTML 文件中使用纯 d3 js 确实很容易
  • 使用d3.js实现元素的过渡效果

    我正在将一个元素从一个点移动到另一个点 但具体来说我想实现这个动画 http carto net svg samples path animation svg http carto net svg samples path animatio
  • D3 DataMaps:气泡上的 OnClick 事件

    我正在关注 datamaps 文档 并尝试为我在 svg 上渲染的气泡设置一个 onClick 侦听器 现在svg div具有以下子标签
  • 从 csv 更新数据时,d3 在 setInterval 上闪烁文本

    我是 d3 的新人 学习了很多东西 我在更新从 csv 文件获取的数据时遇到了一些问题 我使用 setInterval 每秒更新数据 当它删除并再次插入数据时 它会闪烁几毫秒 表消失并生成新表 我究竟做错了什么 我怎样才能消除闪烁 感谢您的
  • D3.js 如何将我的真实数据合并到饼图中

    我是 D3 和数据可视化的新手 在加载真实数据时遇到一些问题 您将在以下部分中找到我的代码 现在我有一些数据存储在数组中 现在我想做的是将数据库中的实际数据存储到饼图中 另外 如果我这样做 var mydata d3 json mydata
  • 使用 d3 在两个节点之间绘制多条边

    我一直在关注 Mike Bostock 的代码这个例子 http bl ocks org 1153292学习如何在 d3 中绘制有向图 并且想知道如何构建代码 以便可以在图中的两个节点之间添加多个边 例如 如果上例中的数据集定义为 var
  • Webpack 不包括 ProvidePlugins

    我正在开发一个小型试用 Web 应用程序 它使用 vue webpack 模板 https github com vuejs templates webpack https github com vuejs templates webpac
  • 如何在 d3.scale.ordinal() 中指定域?

    var W 100 var H 200 var data v 4 v 8 v 15 v 16 v 23 v 42 var x d3 scale linear domain 0 max x range 0 W var y d3 scale o
  • 需要帮助在 D3.js 条形图中将 x 轴刻度与条形对齐

    我有一个可用的线性条形图D3 js http d3js org 它也有基于时间的 x 轴 条形图绑定到计数属性 而轴绑定到日期属性 轴上的刻度未与条形对齐 知道如何将它们两者排列起来吗 这是 jsFiddle http jsfiddle n
  • 具有水平和垂直组合布局的可折叠树

    我正在尝试在 D3 中创建一个可折叠树 它结合了水平 第一级和第二级 和垂直 3 级 布局 这里有一个jsfiddle http jsfiddle net artemkolotilkin z7tb23Lo 到目前为止我所得到的 除了一件事之
  • 如何使用数据对象中的值指定 d3.js 选择器?

    我在 Web 应用程序中使用 d3 js 描述我想要做的事情的最简单方法是查看下面链接的 Fiddle 但基本设置是我有一个包含数据对象的数组 my data id B text I want this text in B id C tex
  • D3js 多折线图 mouseOver

    我正在努力适应this http bl ocks org mbostock 3902569D3js 折线图示例 将鼠标悬停在我的多线图表上的使用情况 看起来d3 mouse this 0 on the mousemove函数生成以下错误 无
  • 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 中在外部加载的 svg 图形上绘图

    我已经从 svg 文件加载了外部图形 我想尝试在其上绘图 但不知道如何操作 我的简单 d3 代码在这里
  • D3 旭日弧尺寸

    我正在尝试根据以下示例创建 D3 旭日图 https bl ocks org maybelinot 5552606564ef37b5de7e47ed2b7dc099 https bl ocks org maybelinot 55526065
  • 元素不适应 Firefox 上的

    使用 ES6 ish D3js 模块运行 Angular 6 应用程序会导致 Firefox 出现问题 Chromium Chrome Safari 和 IE Edge 工作正常 伪代码看起来类似于 生产代码可以在下面找到
  • D3 v4 在同一元素上进行画笔和缩放(鼠标事件不冲突)

    我的目标是构建一个使用两者的 D3 v4 图表d3 zoom https github com d3 d3 zoom and d3 brush https github com d3 d3 brush一起 如下 当鼠标位于 x 轴上时 用户
  • D3.js - 具有多个环的圆环图

    以下示例显示了 D3 js 中的圆环图 是否可以向图表添加多个圆环 var dataset apples 53245 28479 19697 24037 40245 var width 460 height 300 radius Math

随机推荐

  • 如何设置 SELECT 下拉列表中可见的最大项目数?

    我有一个大约 30 个项目的下拉列表 我只想显示 8 个项目 然后下拉列表应该滚动 我在VS2010中使用MVC2 你有没有尝试过size代替rows 根据w3http www w3schools com tags att select s
  • asp.net C# 生成用户控制参数

    ASP net 对我来说是新的 并且我被交给了一个现有的项目来处理 我这样写 Asp Net WebForms 如何将 ViewData 作为参数传递给用户控件 https stackoverflow com questions 46150
  • 将matlab图形保存到指定目录的脚本

    假设我在 matlab 中打开了几个图形 我想要一些可以调用的函数 例如save all figures to directory dir name 这将迭代所有图形并将它们保存到指定的文件夹中 我该怎么做呢 可以使用Matlab函数fin
  • pytesseract 不适用于一位数字图像

    我有使用 pytesseract 的代码并且工作完美 只有当我尝试识别的图像是 0 到 9 时才不起作用 如果图像只有一位数字 则不会给出任何结果 这是我正在工作的图像样本 这是我正在使用的代码 import pytesseract var
  • Scala:值 :: 不是 Int 的成员

    我最近开始使用 scala 但我无法获取任何错误消息 对于以下代码 我得到指定的消息 使用 eclipse def helper Int gt List Int x gt x match case 2 gt 2 1 我可以使用 List 2
  • getSignedUrl() 和 getDownloadUrl() 之间的区别

    Node js 上的 get getSignedUrl 方法与 SDK 上的 getDownloadURL 方法有什么区别 我用的是颤动 与我在云函数中使用的 getSignedUrl 一样 当图像更改时返回的url不会更改 具有相同的文件
  • 作为一个原子操作插入到 azure cosmos db 中的多个容器

    我对 Azure Cosmos DB 有点陌生 我想知道它是否可以选择将多个容器上的多个操作作为一个原子操作 例如 所有成功或失败都来自 NET 后端 对于单个容器中的单个操作来说 操作是原子的 如果您使用存储过程 则可以在单个容器内的单个
  • Microsoft Excel 保存文件时使用什么字符集?

    我有一个 Java 应用程序 可以读取在 Excel 中创建的 CSV 文件 例如 2007 有谁知道 MS Excel 使用什么字符集来保存这些文件 我会猜测 windows 1255 Cp1255 ISO 8859 1 UTF8 但我无
  • 保护 ajax 请求的安全

    我有一个使用会话 cookie 来确保安全的网站 它工作得很好 但是现在任何 ajax 请求都不安全 例如 假设用户在某个页面上 他们只有通过会话登录才能访问此页面 到目前为止一切顺利 但现在他们要求的ajax请求是 ajaxpages s
  • Gradle 工件插件无法解决对配置阶段的依赖

    我正在尝试使用artifactory gradle 插件解决配置阶段的依赖关系 apply plugin java apply plugin com jfrog artifactory artifactory contextUrl arti
  • 我们可以使用贪心算法而不是动态规划来解决“整齐打印”问题吗?

    算法导论 书中的 打印整齐 问题是通过动态规划来解决的 是问题5 3 已找到解决方案here https segue middlebury edu repository viewfile polyphony repository repos
  • 如何通过 OpenCV 和 Python 通过索引从视频中获取帧?

    我需要通过帧索引访问视频中的帧 到目前为止我使用了这样的代码 video cv2 VideoCapture video path status frame video read 该代码读取第一帧 如果我重复使用该代码 我将获得下一帧 但是我
  • CPU 中的相关负载重新排序

    我一直在阅读内存屏障 软件黑客的硬件视图 http www puppetmastertrading com images hwViewForSwHackers pdf 保罗 E 麦肯尼 Paul E McKenney 撰写的一篇非常受欢迎的
  • 电子邮件上的 CSS

    有没有人找到一种在以编程方式生成的电子邮件中嵌入 CSS 的好方法 我发现的最好方法是将样式代码放入资源文件中并在代码中调用它 一个例子是 Dim objBuilder objBuilder New StringBuilder objBui
  • 如何关闭本地 firebase 模拟器?

    目前我使用以下命令初始化 firebase 模拟器 firebase emulators start 经过一段时间的研究后 我想停止它 那么我怎样才能停止模拟器呢 查看端口被哪个进程占用sudo lsof i tcp
  • 从 htaccess 中的 URL 中删除不需要的字符

    我们当前的 htaccess 设置正确地将 URL 转换为这样 site com page php sid Friend 到 site com Friend 然而 由于不相关的疏忽 我们几乎所有的 URL 都被双索引为 site com F
  • phpmyadmin:创建一个函数

    我正在尝试在我的 phpmyadmin 中创建一个函数 不起作用 这是我的语法 DELIMITER CREATE FUNCTION fixString input varchar RETURNS varchar BEGIN declare
  • 如何在 TypeORM queryBuilder 中显示生成的 SQL/原始 SQL

    我开发了typeorm querybuilder 为了调试的目的 我想显示生成的 SQL 查询 我测试过printSql 方法 但它没有显示任何 SQL 查询 const Result await this attendanceReposi
  • R Keras:将tensorflow张量转换为R数组

    我正在使用 R Keras 我可以通过执行以下命令来获取中间层的输出 layer output lt get layer mymodel index 1 output 其中 mymodel 是 Keras 模型 问题是layer outpu
  • 更新拉丝面积图的 y 轴

    我正在使用 d3 js 并且我正在通过修改来处理拉丝面积图这个例子 http bl ocks org 1667367 除了根据画笔改变 x 轴之外 我还希望根据画笔内数据的 y 值重新绘制图表的 y 轴 类似于 我已经使该功能正常工作 但只