首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >D3.js只是画了一条垂直线,而不是真正的图形

D3.js只是画了一条垂直线,而不是真正的图形
EN

Stack Overflow用户
提问于 2017-07-26 05:26:34
回答 1查看 179关注 0票数 1

我已经搜索了一大堆文章和教程,试图弄清楚d3,我想我已经弄明白了大部分,但这并不是一条界限,我不知道为什么。这是一个简单的d3.line()图。必须将数据转换为适合.line()的格式,事实也的确如此。我还在控制台中确认了数据的格式

代码语言:javascript
运行
AI代码解释
复制
[{time: 1881, temp: -10} , {time: 1882, temp: -9 } ...]

如果有人能帮我解决这个问题,我将不胜感激。还有什么好的d3 v4教程吗?

代码语言:javascript
运行
AI代码解释
复制
    var width = 500;
    var height = 500;
    var margin = 25;
    var axisLength = width - 2 * margin;


    var svg = d3.select("body")
      .append("svg")
        .attr("width", width)
        .attr("height", height)
      .style("border", "1px solid");



     // 5. X scale will use the index of our data
     var xScale = d3.scaleTime()
        .domain(d3.extent([new Date(1881,0,1),new Date(2015,0,1)]))
        .range([0, width]); // output

    // 6. Y scale will use the randomly generate number 
    var yScale = d3.scaleLinear()
        .domain(d3.extent(tempArrMap["Glob"], function(d) {return d;})) 
        .range([height, 0]); // output 

    var xAxis = d3.axisBottom(xScale);
    var yAxis = d3.axisLeft(yScale);

    svg.append("g")
          .classed("x-axis", true)
          .attr("transform", function() {
            return "translate(" + margin + "," + (height - margin) + ")";
          })
        .call(xAxis);




    var yrsCol = getCol(tempData,0)
    var globCol = getCol(tempData,1);


    var LineData = { x:yrsCol, y:globCol};

    function fn(data){
        var out = data.y.map(function (_, idx) {
           return { time: data.x[idx], temp: data.y[idx] }; 
    });
       return out;
    }

     svg.append("g")
         .classed("y-axis", true)
          .attr("transform", function() {
       return "translate(" + margin + "," + margin + ")";
      })
     .call(yAxis);

    var inLineData = fn(LineData);

现在,适用于d3.line()的形式的inLineData是形式上的对象数组。我已经通过控制台确认了数据的有效性。

[{time: 1881, temp: -10} , {time: 1882, temp: -9 } ...]

代码语言:javascript
运行
AI代码解释
复制
    var line = d3.line()
          .x(function(d) { return xScale(d.time); })
          .y(function(d) { return yScale(d.temp); });

    svg.append("path")
      .attr("d", line(inLineData))
      .attr("fill", "none")
      .attr("stroke", "red")
      .attr("transform", function() {
        return "translate(" + margin + "," + margin + ")";
      });
EN

回答 1

Stack Overflow用户

发布于 2017-07-26 05:33:52

在您的代码片段中,似乎缺少D3生命周期方法,特别是输入()。

http://synthesis.sbecker.net/articles/2012/07/09/learning-d3-part-2

,但是首先,我们只有一个空白页面,没有段落。我们如何在页面上获得新的段落,来表示数据?输入.enter()。当我们在现有选择上调用enter()时,我们切换到表示尚未映射到元素的数据的子选择,因为页面上还没有足够的子选择来表示所有当前数据集。换句话说,如果我们的数据集中的数据比页面上的元素多,那么“enter”子选项表示尚未添加的元素。

从这个人本身来看,博斯托克在条形图上很容易理解。这可能有助于清除您的实现中缺少的任何令人困惑的东西。

https://bost.ocks.org/mike/bar/

又出现了令人讨厌的enter()。

因为我们知道选择是空的,所以返回的更新和退出选择也是空的,我们只需要处理enter选择,它表示没有现有元素的新数据。我们通过追加到enter选择来实例化这些缺失的元素。

barUpdate.enter().append("div"); barEnter = var

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45318123

复制
相关文章
iOS:关于WWDC2020-Objective-C运行时的改进
在 WWDC2020 中 Objective-C 运行时的改进这个视频提到关于类的的数据结构的一些变化,本文是对这个视频提到的部分变化进行翻译。
CC老师
2022/01/14
5100
iOS:关于WWDC2020-Objective-C运行时的改进
Project Euler Problem 1
用python解决  Project Euler 问题 记录 由于比较擅长java  对python相对陌生,就用python来解答 源码: sumAll =0 for index in range(1,1000): if index%3==0 or index%5 ==0: sumAll += index print(sumAll)
明明如月学长
2021/08/27
2810
HDUOJ-----2824The Euler function
The Euler function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3284    Accepted Submission(s): 1350 Problem Description The Euler function phi is an important kind of function in number theory
Gxjun
2018/03/22
6300
Adams-Bashforth-Euler格式的稳定域。
Adams_Bashforth_2.m figure(1), clf, hold on % Plot of stability domain theta = 0:0.01:1; theta = theta*pi; z = exp(2*i*theta) - exp(i*theta); z = z./(1.5*exp(i*theta) - 0.5); plot(z) % Plot of oval b = 0.5^0.25; a = 0.5; z = - a*(1-cos(theta))
裴来凡
2022/05/28
3870
Adams-Bashforth-Euler格式的稳定域。
YOLO V2的10个改进技巧(上篇)
YOLO V2的原始论文是,《YOLO9000: Better, Faster, Stronger 》,新的YOLO版本论文全名叫“YOLO9000: Better, Faster, Stronger”,主要有两个大方面的改进:
小草AI
2019/05/30
2.6K0
数学——Euler方法求解微分方程详解
用Euler算法求解初值问题 \[ \frac{dy}{dx}=y+\frac{2x}{y^2}\] 初始条件\(y(0)=1\),自变量的取值范围\(x \in [0, 2]\)
py3study
2020/01/22
2.4K0
CVPR 2020 | 10篇改进GAN的论文(网络、训练、正则等)
引入新的局部稀疏注意力层,保留二维几何形状和局部性,用这种结构替换SAGAN的密集注意力层即可获得显着的FID、Inception score和视觉效果。https://github.com/giannisdaras/ylg
公众号机器学习与AI生成创作
2020/06/19
1.3K0
CVPR 2020 | 10篇改进GAN的论文(网络、训练、正则等)
CVPR 2020 | 10篇改进GAN的论文(网络、训练、正则等)
引入新的局部稀疏注意力层,保留二维几何形状和局部性,用这种结构替换SAGAN的密集注意力层即可获得显着的FID、Inception score和视觉效果。https://github.com/giannisdaras/ylg
OpenCV学堂
2020/06/19
1.1K0
CVPR 2020 | 10篇改进GAN的论文(网络、训练、正则等)
一维Euler方程的AUSM(Liou-Steffen)格式等。
AUSM_scheme.m clear all global PRL CRL MACHLEFT gamma pleft pright rholeft rhoright uleft... uright tend lambda % lambda = dt/dx % .....................Input............................ gamma = 1.4; % Ratio of specific heats J = 48;
裴来凡
2022/05/28
2220
一维Euler方程的AUSM(Liou-Steffen)格式等。
iOS16 和 Xcode14 如何改进 App 大小和运行时性能
本文主要介绍苹果在 Xcode14 和 iOS 16 上,如何从编译层面和运行时层面,优化 Swift 和 Objective-C runtime, 来让 app 二进制体积更小,运行更快,启动更快。当你使用 Xcode 14 构建应用程序时,你将会了解到如何访问高效的协议检查,更小消耗的消息发送调用,以及优化后的 ARC。下面我们深入探讨这几个方面的优化。
DerekYuYi
2022/06/26
4K1
iOS16 和 Xcode14 如何改进 App 大小和运行时性能
数学--数论--HDU - 6124 Euler theorem (打表找规律)
HazelFan is given two positive integers a,b, and he wants to calculate amodb. But now he forgets the value of b and only remember the value of a, please tell him the number of different possible results. Input The first line contains a positive integer T(1≤T≤5), denoting the number of test cases. For each test case: A single line contains a positive integer a(1≤a≤109). Output For each test case: A single line contains a nonnegative integer, denoting the answer. Sample Input 2 1 3 Sample Output 2 3 这个题比较水,用了map还是不如线性递推快,但是线性递推就超时了,于是打表找规律,然后发现规律如下。
风骨散人Chiam
2020/11/05
2920
五分钟了解Java10针对垃圾收集的改进
Java10 已经发布了大概有一个多月了。我们在之前的文中介绍过10为我们带来的一些新特性:JDK10要来了:下一代 Java 有哪些新特性?。其中就提到了10 关于G1垃圾收集器的一些改进。G1在Java 9的时候已经是被作为默认的垃圾收集器了。如果你了解G1的话,应该知道它是一个更注重低停顿的收集器。有关G1的内容你可以移步一步步图解G1。 那么在10中针对垃圾回收都有哪些改进和改变呢? 严格的来说有两处是与垃圾回收有关的: 分别是JEP304和JEP307。 JEP 304: 垃圾回收器接口(Garb
ImportSource
2018/04/18
1.1K0
【Rust日报】2023-10-02 改进 Rust 宏中的自动完成功能
自动完成是 IDE 提供的一种功能,可以帮助开发者在编写代码时快速找到正确的关键字和参数。在 Rust 宏中,自动完成功能可能会出现不准确或不完整的情况。
MikeLoveRust
2023/10/04
2810
【Rust日报】2023-10-02 改进 Rust 宏中的自动完成功能
java运行时异常和非运行时异常区别_常用的运行时异常
Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:
全栈程序员站长
2022/11/11
1.1K0
改进GPT的底层技术
code:通过进化、可塑性和 元 元学习 获得认知能力(4个时间维度的学习迭代)
CreateAMind
2023/09/01
1630
改进GPT的底层技术
故障改进
当你解决故障的时候,一定要防止对方对问题提前下结论,如果对方局部的证明是能证明结论是正确的,那从全局来看呢?不要在二手信息上深入讨论,不要用二手信息作为重要依据。
只喝牛奶的杀手
2022/11/14
6090
故障改进
运行时异常与非运行时异常的区别
java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)(非运行时异常)。
全栈程序员站长
2022/06/30
9560
PSO算法的改进策略
PSO(PSO——Particle Swarm Optimization)(基于种群的随机优化技术算法) 粒子群算法模仿昆虫、兽群、鸟群和鱼群等的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断改变其搜索模式。
里克贝斯
2021/05/21
1K0
PSO算法的改进策略
文献——Mantel test的改进
Link:http://sci-hub.tw/https://besjournals.onlinelibrary.wiley.com/doi/pdf/10.1111/2041-210X.13141
Listenlii-生物信息知识分享
2020/05/29
1.3K0
文献——Mantel test的改进
【Rust 日报】2021-11-10 好文推荐:如何改进限制过多的 Rust 库 API
这个 crate 原理仍然是将rust编译成 cdylib,然后在 c# 里面调用。不过将这个过程变得更容易了一点。
MikeLoveRust
2021/11/12
4990

相似问题

使用Twitter流API获取最新的tweet

12

使用流API twitter使用1.1获取tweet

14

Twitter流API:可以只过滤有坐标的tweet吗?

13

Twitter流api -限制tweet的数量

12

使用Twitter流API,是否可以只显示特定用户的tweet?

46
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档