首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在多线图中随线条打开和关闭数据点

如何在多线图中随线条打开和关闭数据点
EN

Stack Overflow用户
提问于 2019-11-13 05:25:48
回答 1查看 62关注 0票数 0

单击图例时,我正在尝试切换折线图中的数据点。这是我小提琴的link。在我的小提琴上,当单击图例时,线条和相应的轴将会打开和关闭,但点不会。相关代码如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    //************* Lines and Data Points ***************
    var colors = ["blue", "red"];

    var thisScale;

    var line = d3.line()
      .x(d => x(d.x))
      .y(d => thisScale(d.y))
      .curve(d3.curveLinear);

    var paths = g.selectAll("foo")
      .data(data)
      .enter()
      .append("path");

    paths.attr("stroke", function (d,i){return colors[i]})
      .attr("d", d => {
        thisScale = yScale[d.yAxis]
        return line(d.data);
      })
      .attr("stroke-width", 2)
      .attr("id", function (d,i){return "line" + i})
      .attr("fill", "none");

    var pointsGroup = g.selectAll(null)
      .data(data)
      .enter()
      .append("g")
      .attr("fill", function(d, i) {
        local.set(this, yScale[i])
        return colors[i];
      });

    var points = pointsGroup.selectAll(null)
      .data(function(d) {
        return d.data
      })
      .enter()
      .append("circle")
      .attr("cx", function(d) {
        return x(d.x);
      })
      .attr("cy", function(d, i) {
        return local.get(this)(d.y);
      })
      .attr("r", 3)
      .attr("class", function(d, i) {
        return "dots" + i;
      })
      .attr("clip-path", "url(#clip)")
      .on("mouseover", mouseover)
      .on("mouseleave", mouseleave)

    //************* Legend ***************
    var legend = svg.selectAll(".legend")
    .data(data)
    .enter().append("g")

    legend.append("rect")
      .attr("x", width + 65)
      .attr("y", function(d, i) {
      return 30 + i * 20;
    })
      .attr("width", 18)
      .attr("height", 4)
      .style("fill", function(d, i) {
      return colors[i];
    })

    legend.append("text")
      .attr("x", width + 60)
      .attr("y", function(d, i) {
      return 30 + i * 20;
    })
      .attr("dy", ".35em")
      .style("text-anchor", "end")
      .text(function(d, i) {
      return "Value" + (i + 1);
    })
      .on("click", function(d, i) {
      // Determine if current line is visible
      let opacity = d3.select("#line" + i).style("opacity");
      let newOpacity;
      if (opacity == 0) {
        newOpacity = 1;
      }else {
        newOpacity = 0
      }
      d3.select("#line" + i).style("opacity", newOpacity);
      d3.selectAll("dots" + i).style("opacity", newOpacity);
      d3.select("#ySecAxis" + i).style("opacity", newOpacity);
      d3.select("#yAxisLabel" + i).style("opacity", newOpacity);            
    });

我已经将类归因于我的点数.attr("class", function(d, i) { return "dots" + i; }),并尝试使用d3.selectAll("dots" + i).style("opacity", newOpacity);切换点数。但是,它不起作用,有人知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-14 00:23:14

您需要进行两个更改

1-将dots类分配给父g元素,以便只对每组点迭代i变量。不要在点本身上使用赋值类。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var pointsGroup = g.selectAll(null)
  .data(data)
  .enter()
  .append("g")
  .attr("class", function(d, i) {
    return "dots" + i
  })
  .attr("fill", function(d, i) {
    local.set(this, yScale[i])
    return colors[i];
  });

2-通过包括".“来选择点类别。在选择名称中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d3.selectAll(".dots" + i).style("opacity", newOpacity);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58830800

复制
相关文章
Jetbrains Rider:缺少.NET Framework 4.5.2
问题1:使用Rider打开一个老的项目,项目目录出现一堆波浪线、下方EventLog告诉我们缺少了:.NET Framework 4.5.2(具体缺少哪个版本根据你的项目的实际情况而定);
NorthS
2023/03/21
2K0
Jetbrains Rider:缺少.NET Framework 4.5.2
缺少VCRUNTIME140_1.dll的解决方法
缺少VCRUNTIME140_1.dll与缺少VCRUNTIME140.dll是不同的
六四零
2020/08/05
21.7K3
缺少VCRUNTIME140_1.dll的解决方法
Maven项目缺少Maven Dependencies解决方法总结
一、今天搭建了一个maven项目,在pom.xml文件引入依赖后,发现项目结构中没有Maven Dependencies文件(下图),但是在java Build Path中又可以找到Maven Dependencies文件(如下图):
全栈程序员站长
2022/06/29
3.6K0
Maven项目缺少Maven Dependencies解决方法总结
安装sql server时提示缺少.NET 3.5 sp1
这几天遇到了一个问题,在安装sql server的时候总是提示我没有安装.NET framework 3.5 sp1 ,但是我电脑上已经安装了它。多次尝试之后我百思不得其解,今天终于解决了。
乐百川
2022/05/05
1.2K0
我心中的页面重构
今天第一次堵门口,霸面了一把,不是什么光荣的事。面试临走的时候,面试官要我今晚把作品以及简历发给他看看,并强调只要重构相关的。
libo1106
2018/08/08
3930
我心中的AI
企鹅号小编
2017/12/27
6750
我心中的AI
windows10系统装cad2007提示缺少NET组件
打开控制面板-->找到 程序 选择 启用或关闭windows功能 打开.NET Framework3.5(默认它是关闭的),然后确定 这时windows会提示要更新下载,确认即可,等待下载完成再重新运行CAD2007安装程序即可。
运维小白
2021/12/28
1.6K0
windows10系统装cad2007提示缺少NET组件
.NET Core 使用 EF 出错的解决方法
在.NET Core 项目钟(类库),使用Entity Framework,建立模型生成数据库时,失败
痴者工良
2019/08/08
2.8K0
HDFS 集群无法启动 DataNode 节点以及管理界面缺少 DataNode 节点的解决方法
搭建了一个 HDFS 集群,用了 3 台虚拟机,1 台虚拟机是master作为NameNode节点;2 台虚拟机分别是slave1和slave2作为DataNode节点,具体的集群搭建过程可参考「快速搭建 HDFS 系统(超详细版)」这篇博文。
CG国斌
2019/05/26
4.3K0
C# 反射与特性(十):EMIT 构建代码
前面,本系列一共写了 九 篇关于反射和特性相关的文章,讲解了如何从程序集中通过反射将信息解析出来,以及实例化类型。
痴者工良
2021/04/26
7810
java.net.UnknownHostException 解决方法
  今天有位小伙伴来求助,说他们公司用的单点登录,接口URL在公司的公网域名下,如(https://www.csdn.net/xxx/login),他打包好的Web项目在自己机子上跑没问题,一部署到服务器就报 java.net.UnknownHostException 错误,从字面上看是请求目标的服务连不上,网络不通。这到底是怎么回事?又该怎么解决呢?mark一下
陈哈哈
2021/10/13
9.2K0
Python缺少zlib的问题
参考: 解决python3缺少zlib的问题 Python安装zlib模块
py3study
2020/01/09
4.6K0
不该缺少的Error体系
该文介绍了如何构建一个完整的错误体系,包括错误码、错误提示、错误处理等方案,并给出了具体的例子和代码。
MelonTeam
2018/01/04
1.6K0
Mybatis:颠覆你心中对事务的理解
1.说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性、四大隔离级别、七大传播特性。四大特性还好说,问题是七大传播特性是哪儿来的?是Spring在当前线程内,处理多个数据库操作方法事务时所做的一种事务应用策略。事务本身并不存在什么传播特性,不要混淆事务本身和Spring的事务应用策略。(当然,找工作面试时,还是可以巧妙的描述传播特性的)
后端码匠
2020/01/02
5710
技术人心中需要建立的标尺
今天,在我的个人微信讨论群中,有朋友问了一个问题: 关于数据库的负载信息怎么判断好坏啊?有没有一个尺度啊? 这是一个很好的问题,我个人也经历了这样的一个学习过程。 Oracle数据库中有很多指标表征数据库的运行状况,这其中的数据往往只有环境之别,没有好坏之分。 而作为DBA,我们又需要能够快速进行鉴别和判断,以便指导用户去更好的了解自己的数据库环境,并在出现异常时做出改进。 由此,我们需要自行建立一个:数据标尺。 我的习惯是,将诊断过的,典型的数据库信息收集起来,形成一个自己的数据库元数据的“大数据”集合,
数据和云
2018/03/05
6890
【C】腾讯人心中的产品运营
一直想给产品运营下个系统的定义,或者总结一个方法论如何做好产品运营,产品运营需要包含的素质等。听过很…
白凡
2018/08/07
6270
缺少训练样本怎么做实体识别?小样本下的NER解决方法汇总
本文带你走进命名实体识别(NER)任务,首先介绍了解决NER任务的经典模型结构,然后通过3篇顶会论文介绍当缺少训练样本的时候,如何解决NER任务。
圆圆的算法笔记
2022/09/22
1.2K0
缺少训练样本怎么做实体识别?小样本下的NER解决方法汇总
ASP.NET安全隐患的临时解决方法
前几天的一个安全会议上公布了一个ASP.NET中的安全隐患(在1.0至4.0的版本中均存在),黑客可以使用这个隐患获取到网站的web.config文件(往往保存了一些敏感信息,如数据库连接字符串等)以
张善友
2018/01/19
1.2K0
ASP.NET安全隐患的临时解决方法
.Net 站点跨域问题及解决方法
1、什么是站点跨域 了解跨域之前, 先了解下什么同源策略? 百度百科: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正
郑小超.
2018/12/10
1K0
核污水与核废水的区别是什么?
核废水是指核电站在正常日常活动中产生的废水,如用于冷却核电站关键部分的水。这些水不会接触到核反应堆中的放射性物质,经过严格处理后,可以通过管道排出。
永恒君
2023/09/21
3260
核污水与核废水的区别是什么?

相似问题

使用tfs客户端库获取团队+用户容量/休假天数

11

尝试通过客户端库获取TFS用户列表

10

如何获取web客户端

13

您是否可以使用pullrequest ID (不知道问题号)获取一个pullrequest的提交信息?

05

如何通过Web创建TFS 2013 Git存储库?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文