有条件地设置 d3 符号

2024-01-10

我有一段代码,我试图根据传入的参数(0 或 1)动态确定要使用的符号和颜色。但是,当我尝试设置逻辑时,出现属性 d 的路径错误。代码如下

  svg.selectAll(".point")
      .data(data)
    .enter()
      .append("path")
      .attr("class", "point")
      .attr("d", function(d){
        if(d.zeroOrOne == 1){
          return d3.svg.symbol().type("cross");
        }else if (d.zeroOrOne == 0){
          return d3.svg.symbol().type("circle");
        }
      })<
      .attr('fill', 'none')
      .attr('stroke', function(d){
        if(d.zeroOrOne == 1){
          return 'blue';
        }else if (d.zeroOrOne == 0){
          return 'red';
        }
      })
      .attr("transform", function(d) { return "translate(" + ratingScale(d.xParam) + "," + winsNomsScale(d.yParam) + ")"; });

如果我删除条件符号逻辑并严格限制一个符号或另一个符号,则一切正常,但我无法弄清楚为什么添加条件逻辑会导致问题。这是错误:

错误:属性 d:预期的移动路径命令('M' 或 'm'),“函数 n(n,r){...


使用单独的函数来创建符号并调用它

var data = [{"zeroOrOne" : 0 }, {"zeroOrOne" : 1 }, {"zeroOrOne" : 2 }];

// use this for generating symbols
var arc = d3.svg.symbol().type(function(d) { 
	if(d.zeroOrOne == 0) {
		return "circle";
	}
	else if(d.zeroOrOne == 1) {
		return "cross";
	}
	else return "triangle-up";
});

 d3.select("#graph").selectAll(".point")
      .data(data)
    .enter()
      .append("path")
      .attr("class", "point")
      .attr("d", arc)
      .attr('fill', 'none')
      .attr('stroke', function(d){
        if(d.zeroOrOne == 1){
          return 'blue';
        }else if (d.zeroOrOne == 0){
          return 'red';
        }
		else return "green";
      })
      .attr("transform", function(d, i) { return "translate(" + (i + 1) * 20 + " ,30 )"; });
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg id="graph" width="200", height="200" >
</svg>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有条件地设置 d3 符号 的相关文章

  • Angular - 如何从 DOM 中删除我使用过 $compile 的元素?

    我需要的是两个 ng views 的功能 因为我不能 我想更改某些内容的innerHTML 并编译它 我遇到的问题是 当我再次更改内容时 我可以编译 但是 Angular 是否会自行删除绑定 或者我必须手动执行此操作 如果是这样 怎么办 编
  • ReferenceError:regeneratorRuntime未定义(但在范围内工作)

    我遇到过这种奇怪的情况 ReferenceError regeneratorRuntime is not defined 我已经设法在一个非常小的设置中重现 与同一问题上的类似问题相比 并且还注意到一些奇怪的行为 具体取决于是否使用范围 以
  • 将鼠标悬停时的鼠标光标更改为锚状样式

    如果我将鼠标悬停在div鼠标光标将更改为 HTML 锚点中的光标 我怎样才能做到这一点 假设你的div has an id myDiv 将以下内容添加到您的 CSS 中 这cursor pointer指定光标应与用于锚点 超链接 的手形图标
  • 在 contenteditable div 中选择范围

    我有一个contenteditablediv 和其中的一些段落 这是我的代码 div style border solid 1px black width 300px height 300px div Hello world div div
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro

随机推荐

  • 使用 jQuery 从一组选择菜单中删除和添加选项

    这比标题所描述的要复杂一些 但以下是基本的业务规则 上面有三个选择菜单 页面 每个页面都填充相同的内容 选项和值 总会有三个选择 菜单 总会有相同的数字 每个选择中的选项 值 菜单 在任一问题中选择一个问题 菜单将删除该问题作为选项 另外两
  • 使用“car”跨列范围重新编码

    我在网上查了一下 不知道如何申请car重新编码一系列列的值 要重新编码单个列的值 我将运行以下命令 df dv r lt recode df dv 2 1 1 0 0 NA 然后 如果我想对整个 data frame 执行此操作 我可以运行
  • 选项[selected=true] 不起作用

    我有这个命令 visibleSelect 是保存多个选择列表的 jquery 变量 var selectedOption visibleSelect find option selected true 从观察窗我可以看到selectedOp
  • 如何在 Xcode 7.0 beta 2 中运行 iOS 7.1 模拟器?

    我已经安装了最新的 Xcode 7 beta 2 版本 当我尝试在 iOS 7 1 模拟器中运行该应用程序时 它给出了以下错误消息 iOS 7 1 模拟器运行时不可用 无法打开 liblaunch sim dylib 尝试重新安装 Xcod
  • 如何从 gi.repository 导入 gtk.gdk

    我有这个 python 代码 可以截取 x 屏幕的屏幕截图 usr bin python import gtk gdk w gtk gdk get default root window sz w get size print The si
  • 在 Ruby on Rails 中处理国际货币输入

    I have 一个应用程序 http yourdough com处理货币输入 但是 如果您在美国 则可以输入一个数字 12 345 67 在法国 可能是12 345 67 在 Rails 中 是否有一种简单的方法可以使货币输入适应区域设置
  • 将 PictureBox 内容发送到 MsPaint

    如何发送要在 Paint 中编辑的图片框的内容 我想过快速暂时保存它 然后发送要加载的临时地址 但我认为这会导致一些小的保存问题 不幸的是我现在用 C 提供答案 幸运的是 只是语法而不是内容需要改变 假设这是您的图片框控件 获取内容 作为位
  • 为什么 Firefox 不显示我的 SVG 图标,该怎么办?

    Context我正在创建一个仅使用 HTML CSS 和 JS 的静态网站 用于学习目的 我成功地实现了两个主题 为了改变它 我添加了一个SVG图标在一个button元素 然后 svg 根据主题 月亮或太阳 而变化 Problem虽然一切在
  • 在 case 内使用 if、else if、else 和循环进行切换

    出于我的问题的目的 我只包括案例 1 但其他情况是相同的 假设 value 当前为 1 我们转到情况 1 for 循环遍历数组以查看每个元素是否与whatever value 变量匹配 在这种情况下 如果确实如此 我们将 value 变量声
  • plupload 在 IE 9 中似乎无法上传文件。在其他浏览器中可以使用

    在我们的项目中 我们使用 plupload 上传单个 Excel 文件 这适用于除 IE9 之外的所有浏览器 单击上传链接时 会显示文件对话框 但尝试打开 Excel 时没有任何反应 以下是供参考的代码 任何解决此问题的帮助将不胜感激 提前
  • 人们如何使用 Entity Framework 6 进行单元测试,您应该担心吗?

    我刚刚开始进行单元测试和 TDD 我以前涉足过 但现在我决心将其添加到我的工作流程中并编写更好的软件 我昨天问了一个问题 其中包括这一点 但这似乎是一个独立的问题 我坐下来开始实现一个服务类 我将使用该服务类从控制器中抽象出业务逻辑 并使用
  • 获取当月日历中的所有日期

    如何获取当前 某个月份日历中的所有日期 例如本月 如图所示 所以结果是 07 31 2016 08 01 2016 08 02 2016 08 31 2016 09 01 2016 09 02 2016 09 03 2016 有什么想法吗
  • 查找 GeoTiff 图像中每个像素的纬度/经度坐标

    我目前有一个来自 GeoTiff 文件的 171 x 171 图像 尽管在其他情况下 我可能有更大的图像 我的目标是获取图像中的每个像素并将其转换为纬度 经度对 我已经能够根据此 StackOverflow 帖子将图像的角点转换为纬度 经度
  • 如何在多个测试类之间共享 JUnit BeforeClass 逻辑

    目前 我的所有 JUnit 测试都从一个公共基类扩展而来 该基类提供了标记为 BeforeClass and AfterClass注释 所有这些真正做的是设置一堆静态资源 服务供测试使用 由于以下几个原因 这对我来说似乎很尴尬 JUnit4
  • android - 检测向下加速度,特别是电梯

    我希望能够检测到手机向地面加速的情况 可能意味着这里也必须使用重力传感器 我在 Android 文档中阅读了很多有关此主题的内容 包括高通滤波器和低通滤波器以及其他帖子 现在我拥有的是一个代码示例 它在去除重力后获取 X Y 和 Z 轴的加
  • C++ cUrl 通过 api 向 telegram bot 发送图像 buff

    我正在尝试使用 c 将带有 cUrl 的图像 buff 发送到 telegram API 只是要知道我正在 Windows 10 上进行开发 这就是我所做的一切 首先 我使用以下命令从终端使用curl从硬盘发送一张照片 curl s X P
  • 使用条目模式时如何改变 HashMap 的其他元素?

    我想用一个HashMap缓存依赖于映射中其他条目的昂贵计算 条目模式仅提供对匹配值的可变引用 但不提供对其余部分的可变引用 HashMap 我非常感谢您提供更好的方法来解决这个 不正确的 玩具示例的反馈 use std collection
  • 在 TensorFlow 中创建列表并附加到其中

    我是 TensorFlow 新手 我无法理解如何在 TensorFlow 中创建动态 pythonic 列表 基本上 我对张量对象执行一些计算 train data i 并将其附加到 列表 中X 我想成为一个具有形状的张量 100 我想做这
  • 如果只有一个实例,我应该使用实例属性还是类属性? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有 Python 类 在运行时只需要一个实例 因此每个类 而不是每个实例 只需拥有一次属性就足够了 如果有多个实例 这不会发生 则所有实例都应
  • 有条件地设置 d3 符号

    我有一段代码 我试图根据传入的参数 0 或 1 动态确定要使用的符号和颜色 但是 当我尝试设置逻辑时 出现属性 d 的路径错误 代码如下 svg selectAll point data data enter append path att