当前位置: 首页 > 知识库问答 >
问题:

如何在D3中设置yAxis量表。js,具有多个列的csv文件

吴嘉禧
2023-03-14

我一直在玩D3。js最近正在尝试用它制作一个小型地图应用程序。基本上,该应用程序将显示一幅世界地图,当鼠标悬停在一个国家上时,将在下面绘制多年来的碳排放折线图。

geojson文件和csv文件是分开的,这意味着我必须调用一个函数来搜索csv文件中的数据,同时触发mouseover事件,这并不难。

但问题是当我试图画折线图时。我不能使用y.domain([0,d3.max(数据,函数(d){返回d.fookey;})]) 由于我的数据如下所示:

{1990: "4768137.761", 1991: "4826703.418", 1992: "4922195.765", 1993: "5029767.21", 1994: "5121559.554", 1995: "5156168.7", 1996: "5286046.506", 1997: "5419440.965", 1998: "5456092.63", 1999: "5531691.502", 2000: "5713560.034", 2001: "5601404.839", 2002: "5650949.676", 2003: "5681664.468", 2004: "5790765.052", 2005: "5826393.624", 2006: "5737615.554", 2007: "5828696.5", 2008: "5656838.878",2009年:“5311840.184”,2010年:“5433056.536”,iso:“美国”}

是否有一种方法可以在每次触发mouseover事件时动态设置yAxis域?

代码在这里github链接在这里,所有内容都在索引中。html

现在,我已经用域([010000])的硬规则设置了yAxis,还有什么可以绕过它的吗?

提前感谢!

共有1个答案

沙海
2023-03-14
d3.csv("path/to/file.csv")
.row(function(d) { return {key: d.key, value: +d.value}; })
.get(function(error, rows) { console.log(rows); });

这段代码实际上起了作用。它允许我重建数据。

先前我的数据在csv文件中,如下所示

year country1 country2 country3 ...
1900 29292929 2324244  45446666
.
.
.
2010 3995959  9598858  43549599

因此

.行(函数(d){返回{键:d.key,值:d.value};})

我可以选择要从csv文件中检索的键和值。为了我自己,我做了

get(函数(d){返回{年份:d.year,值:d[iso]})

这里的值是:d[iso],“iso”是通过其他函数传递的字符串。这将最终为我提供一个javascript对象数组,如下所示

[{'value':2232323,'年':'2010'}……]

我认为这会让事情变得更好,因为对于我盘旋的每个国家,它会给我一系列相关数据

 类似资料:
  • 问题内容: 我想在Android中创建带有多列的表格。我看到的大多数示例都是2列。(我是Java和Android的新手。)我需要3-4列,并且应该能够在表中动态添加行。谁能给我提供示例代码。(我在WIN 7中使用Eclipse) 问题答案: 我假设您正在谈论的是TableLayout视图,而不是数据库中的表? 如果是这样,这是一个具有三列三行的表的XML示例。 每个 元素在表中创建一行,并且该元素

  • 问题内容: 我有一个列表列表,我想将其写入csv文件中。示例列表: data [0]应该是列名,其他都是行数据 请给我建议一种方法。 问题答案: 这与模块无关紧要: 您已经具有标题作为第一行;您可以使用该方法一次性写入所有行。真的,这就是全部。

  • 问题内容: 我需要使用D3.js在SVG:Text中显示多行文本。 示例数据如下所示,我想为每个作者在单个节点下显示“所有”标题,而不是在强制方向布局中显示为单个节点。 样本数据 SVG:text仅需要输入一个文本并显示在一行中,因此我添加了更多文本并调整了“ dy”?还是收回节点信息并替换? 感谢您的提示。 问题答案: 您有以下选择。 如前所述,您可以添加多个具有适当间距的元素。 您还可以在一个

  • 给定一个文件夹,其中包含多个具有不同列长度的csv文件 必须使用python将它们合并到单个csv文件中,并将文件名打印为一列。 输入:https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0 输出:

  • 我有一些不同列的excel表格,如下所示: 表A:Col1 Col2 Col3 表B: Col2 Col4 Col5 表C: Col1 Col6 Col7 我的最终表格应该是: 最终表格:Col1 Col2 Col3 Col4 Col5 Col6 Col7 如果没有特定列的详细信息,则应保留为空。我一次只成功地合并了两个表,但我想将所有表合并在一起。 这是合并两张图纸的代码: 这是我编写的用于合并

  • 问题内容: 我有一个方法,它接受一个列表并返回一个对象: 我想获取一个包含所有not的映射元素的列表。 像这样: 但是在列表推导中两次调用该方法似乎并不好。 有没有一种方法可以在列表推导中包含局部变量,以使其具有更好的性能? 还是编译器自动对其进行优化? 这是我想要的: 问题答案: 从开始,并引入赋值表达式(PEP 572) (运算符),可以在列表推导中使用局部变量,以避免调用同一函数两次: 在我