如何在d3.js中创建多条折线图,其中每条线的数据均从单独的CSV提取?

时间:2019-02-15 23:36:37

标签: javascript python csv d3.js plot

我的目标是使用d3.js创建一个简单的多折线图,本质上类似于以下内容:

https://beta.observablehq.com/@mbostock/d3-multi-line-chart

我发现了几个很棒的示例,这些示例演示了如何将所有数据都存储在单个CSV中。这些示例之一就是这个示例:

http://bl.ocks.org/asielen/44ffca2877d0132572cb

尽管如此,我对用例的要求还是有些模糊。我的项目根目录中有一个名为“ data”的目录,并且在此文件夹中有任意数量的csvs。所以我的项目文件夹是这样的:

project_root/
    index.html
    data/
        csv1.csv
        abc2.csv
        meow.csv
            .
            .
            .
        woof.csv

每个csv都有我想在图表上绘制的一条线的数据。每个csv还具有以下列:

str(representing a datetime)    int    float    int    string    float

我最想制作图表的列是前两列,其中:

  1. 第一列是一个字符串,它是一个日期时间。这代表直线上每个点的X坐标。我想这将需要从字符串转换为unix时间,以获得易于绘制的X值。
  2. 第二列为int,代表直线上每个点的Y坐标。

因此,从csv的单行中获取前两列会给我们从单行开始的单个(x,y)坐标,以通过d3.js进行绘制。单个csv可以让我们通过d3.js绘制单个线的所有(X,Y)坐标。

我已经设法使用python和matplotlib来(随意地)执行此操作,但是由于我对此很陌生,因此无法将其直接转换为d3。如果有帮助或有人好奇,这是我的python实现:

https://pastebin.com/9Eu9nwzp

如果任何人都可以提供一些见识或简短(有希望的)摘要来完成d3.js中的图表任务,那么对于一个可爱的html文档而言。

0 个答案:

没有答案