【问题标题】:Deleting every second row in a csv-file删除 csv 文件中的每一行
【发布时间】:2019-01-05 02:15:52
【问题描述】:

我是 d3.js 的新手。现在我正在使用d3.js 制作折线图,并且想删除/忽略原始 csv 文件的每一行。数据量非常大,我想试试,如果 Zoom 和 Pan 用更少的数据会变得不那么滞后。由于原始数据步数非常小,因此最终结果将是相同的。

我正在获取我的数据 d3.csv("data.csv", type, function(error, data) { if (error) throw error;...

function type(d) { d.x = +d.Time_seconds; d.y1 = +d.Temp2_C; d.y2 = +d.Temp3_C;

我认为一个可能的解决方案是在使用d3.csv() 加载它们之前删除这些行

我已经用d3.xhr 尝试了一些东西,但没有得到任何有用的东西。我什至不知道,如果它是正确的开始方式。

谢谢!

【问题讨论】:

  • 我们建议分享您迄今为止尝试过的代码。否则很难理解或解释需要什么。

标签: javascript csv d3.js


【解决方案1】:

在加载回调中获取数据后,使用Array.filter 并使用索引来确定该行是否被接受

d3.csv("data.csv", type, function(error, data) {
    if (error) throw error;

    data = data.filter( (e, i) => i % 2 === 0 );

    ...

【讨论】:

  • 非常感谢。这对我帮助很大。还有一种方法可以只使用每十个数据点吗?我以 0.01 的步长从 0 到 1000 的数据点,所以如果我缩短我的数据并且只使用每十分之一点,甚至更少,这并不重要。但是按照您向我展示的方式,我每 2 秒只能获得一个数据点。就准确性而言,这可能还不够。
  • 你的 csv 文件 100*1000 = 100000 行大吗?如果您查看您的 csv 文件,这些行相隔 0.01 秒,并且使用浏览器调试器,它看起来也是正确的(data 中的 100000 行)和相隔 0.01 秒,在带有@987654325 的代码行之后您有多少行@。如果你在模表达式中使用了2,那么它应该是 50000。
  • 发现错误。我在第一列中使用了filter(),而不是一般数据。我应该做的,你的建议!非常感谢!!!
  • 如果您收到关于要添加或更改哪一行代码的建议,为什么不先尝试这个建议,而不是做一些完全不同的事情,然后在不显示您自己的修改的情况下询问它是否不起作用?
  • 因为我是 d3.js 的菜鸟,并没有故意完全不同。无论如何感谢您的帮助。
猜你喜欢
  • 2016-11-06
  • 2020-07-18
  • 2017-11-19
  • 1970-01-01
  • 2020-12-17
  • 2015-03-11
  • 1970-01-01
  • 2020-05-15
  • 2023-03-23
相关资源
最近更新 更多