Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从CSV呈现D3数据_Javascript_Html_Csv_D3.js - Fatal编程技术网

Javascript 从CSV呈现D3数据

Javascript 从CSV呈现D3数据,javascript,html,csv,d3.js,Javascript,Html,Csv,D3.js,这更像是一个代码审查的请求,但我一生都无法将此.csv数据正确地呈现为D3中的折线图 下面是我写的代码 到目前为止,我只能渲染y轴和轴标题,但似乎无法渲染数据。也许我做错了什么,但就是看不出来 非常感谢您的帮助和建议 JavaScript文件 HTML文件: 测试:使用D3渲染黑暗数据 测试:渲染黑暗API温度数据w/D3.js 然后是一些示例.csv文件 你需要正确设置你的秤的范围和范围 在这里: 您正在设置一个比例,从minDate到maxDate(域)获取值,并将其映射到minDat

这更像是一个代码审查的请求,但我一生都无法将此
.csv
数据正确地呈现为D3中的折线图

下面是我写的代码

到目前为止,我只能渲染y轴和轴标题,但似乎无法渲染数据。也许我做错了什么,但就是看不出来

非常感谢您的帮助和建议

JavaScript文件 HTML文件:

测试:使用D3渲染黑暗数据
测试:渲染黑暗API温度数据w/
D3.js


然后是一些示例
.csv
文件
你需要正确设置你的秤的范围和范围

在这里:

您正在设置一个比例,从minDate到maxDate(域)获取值,并将其映射到minDate到maxDate(范围)的值。您需要修改以下内容:

 const x = d3.scaleTime()
    .rangeRound([0,width])       // values to map to (x coordinate values)
    .domain([minDate, maxDate]); // extent of input values/values needing scaling
y轴也一样:

  const y = d3.scaleLinear()
              .rangeRound([height, 0])
              .domain([height, 0])
你需要区分你的范围和领域。上面的刻度只取0到
高度之间的值,并返回相同的值


要修复图形,您需要正确设置:

  • 数据集中输入值范围内的域(临时值、日期等)
  • 输出值的范围,通常是x或y的坐标值(或颜色、半径等)
应用这些变化(我硬编码了一个[40,50]的温度域),如下所示:

使用您的代码和数据,我得到:


您好,您能将其重新编译成一个JSFIDLE.net支持D3的文件吗?我能加载到外部csv文件吗?太好了!谢谢你的提示和建议!我将玩转代码。:)可以我已经更改了代码,并得到了一个静态HTML页面工作,一切看起来都很好?真的!非常感谢!我仔细阅读了您的建议,并引用了M.Bostock的一个示例,并在元素中重写了JS。我现在的问题是,我想通过Flask端点提供这个静态d3.html页面,但不幸的是,当我调用
render\u template('d3.html')
时,该图没有呈现出来。下面是指向我的新问题的链接:
 const x = d3.scaleTime()
    .rangeRound([minDate, maxDate])
    .domain([minDate, maxDate]);
 const x = d3.scaleTime()
    .rangeRound([0,width])       // values to map to (x coordinate values)
    .domain([minDate, maxDate]); // extent of input values/values needing scaling
  const y = d3.scaleLinear()
              .rangeRound([height, 0])
              .domain([height, 0])
  const x = d3.scaleTime()
              .rangeRound([0,width])
              .domain([minDate, maxDate]);
  const y = d3.scaleLinear()
              .domain([40, 50])
              .rangeRound([height, 0])