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

如何在多线图中随线条打开和关闭数据点
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

复制
相关文章
【R语言】如何在绘图中显示“≥” 和“≤”
不知道大家在用R绘图的时候,有没有遇到过需要在图中显示大于等于(≥)或者小于等于(≤)符号。小编发现一个很奇怪的现象,在Rstudio里面可以正常显示,但是保存到pdf文件中就变成了=。
生信交流平台
2022/09/21
1.4K0
【R语言】如何在绘图中显示“≥” 和“≤”
随 机 数 算 法
在password技术中,随机序列是非常重要的,比方密钥产生、数字签名、身份认证和众多的password学协议等都要用到随机序列。所以产生高质量的随机数序列对信息的安全性具有十分关键的数据。随机数分为真随机数和伪随机数,计算机通过算法产生的随机数并不上真正意义上的随机数,非常easy被激活成功教程,仅仅能称为伪随机数。若要产生真正的随机数,必须通过硬件来实现,比方使用离子辐射事件的脉冲检測器、气体放电管和带泄露的电容等,可是为每台计算机配备这种装置上不可能。所以在此我们通过改进我们的算法,使生成的伪随机数达到真随机数的标准。
全栈程序员站长
2022/09/06
6480
python_文件的打开和关闭
文件对象 = open('文件名','使用方式') rt:读取一个txt文件 wt: 只写打开一个txt文件,(如果没有该文件则新建该文件)会覆盖原有内容 at:打开一个txt文件,并从文件指针位置追加写内容(文件指针默认在末尾) 文件操作错误属于:I/O异常 通常的异常:
Mirror王宇阳
2020/11/10
1.5K0
MySQL是如何打开和关闭表?
当我们在执行mysqladmin status 命令或连接通过mysql客户端连接到实例后,执行\s的时候,应该看到类似以下的内容:
SEian.G
2021/07/29
3.6K0
Echarts图表:设置折线图中折线线条的颜色和折线点的颜色
series: [ { name: "总激活数", type: "line", stack: "总激活数", data: this.totalCount, itemStyle: { normal: { color: "#F29C1B", lineStyle: {
江一铭
2022/06/16
2.9K0
Excel图表学习52: 清楚地定位散点图中的数据点
散点图是我们经常使用的一种图表类型,然而,当有许多个数据点时,往往很难弄清楚特定的数据点。其实,使用一些小技巧,我们能够很容易地定位散点图中特定的数据点,如下图1所示。
fanjy
2019/08/30
10.9K0
c语言文件介绍,打开和关闭操作
文件基本概念 文件指针 打开文件 fopen(“文件路径”,打开方式); 文件路径: 打开文件: 关闭文件 fclose(文件指针);
大忽悠爱学习
2021/03/02
1.3K0
c语言文件介绍,打开和关闭操作
10.2 打开与关闭文件
例如:fopen(“a1”,“r”),表示要打开名字为“a1”的文件,使用文件方式为“读入”。
小林C语言
2019/07/12
7440
10.2 打开与关闭文件
文件的打开与关闭
使用完一个文件后应该关闭它,以防止程序对文件误操作而导致出错。文件关闭是指撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件。
pigeon
2022/04/11
1.3K0
文件的打开与关闭
matlab plot函数详解取值范围_matlab为什么plot不出来图
plot(x,y)这种格式中,若x,y是向量,则它们必须具有相同的长度。函数将以x为横轴,绘制y。
全栈程序员站长
2022/11/03
1.5K0
优思学院|质量人对控制图中的规格线和控制线傻傻分不清?
首先你所说的规格的公差原則上就是"规格限制(Specification Limit),你要对"规格限制(Specification Limit)"和"控制限制(Control Limit)"有正确的了解,再确认你所问的问题其实是什么。
用户2865703
2023/01/20
7940
优思学院|质量人对控制图中的规格线和控制线傻傻分不清?
Bootstrap 基于Bootstrap和JQuery实现动态打开和关闭tab页
$("#tab-a-" + options.menuID).click(); // 选中打开的tab
授客
2019/08/21
7.9K1
在 SwiftUI 视图中打开 URL 的若干方法
本文将介绍在 SwiftUI 视图中打开 URL 的若干种方式,其他的内容还包括如何自动识别文本中的内容并为其转换为可点击链接,以及如何自定义打开 URL 前后的行为等。
东坡肘子
2022/07/28
7.8K1
在 SwiftUI 视图中打开 URL 的若干方法
Linux 更改文件打开数和进程数、高并发调优
echo '* soft nofile 102400'>>/etc/security/limits.conf echo '* hard nofile 102400'>>/etc/security/limits.conf echo '* soft nproc 102400'>>/etc/security/limits.conf echo '* hard nproc 102400'>>/etc/security/limits.conf
用户5760343
2022/05/23
2.2K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
导读:绘图是数据分析工作中的重要一环,是探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python包之一,本文主要介绍数据可视化分析工具:Matplotlib。
IT阅读排行榜
2021/06/01
6.7K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
C语言 | 文件打开关闭
这道理放在C语言学习上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。
小林C语言
2021/05/28
1.3K0
C语言 | 文件打开关闭
C语言 | 文件打开关闭
用“r”方式打开的文件只能用于向计算机输入而不能用作向该文件输出数据,而且该文件应该已经存在,并存有数据,这样程序才能从文件中读数据。
小林C语言
2021/05/13
1.6K0
C语言 | 文件打开关闭
Jalview | 多序列比对图中显示序列标识
序列标识图 (Sequence logo)就是序列的残基Logo,它是以图形的方式依次绘出序列比对中各个位置上出现的残基,每个位置上残基的累积可以反应出该位置上残基的一致性。每个残基对应图形字符的大小与残基在该位置上出现的频率成正比。但图形字符的大小并不等于频率百分比,而是经过简单统计计算后转化的结果。
生信宝典
2021/12/15
1.6K0
Jalview | 多序列比对图中显示序列标识
带预测区间的图表
今天跟大家分享带预测区间的图表图表制作技巧! 当图表中的数据带有预测区间,也就是包含未来预测的还未发生的业绩数据时,按照惯常的做法,无法很好地区分已发生和未发生的分别。 可是为了严谨起见,应该对于两者
数据小磨坊
2018/04/10
1.3K0
带预测区间的图表
点击加载更多

相似问题

星图中的多幅图和随列值变化的线条颜色

11

JLabel的高度随线数增长

11

:在线条图中显示数据点值

23

JQPlot如何打开和关闭线条平滑

10

如何在线条图中设置相同数量的数据点?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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