引子
继 Learn D3: By Example 第三篇,只是英文翻译,可修改代码的部分用静态图片替代了,想要实时交互请阅读原文。
-
版本:Published Mar 24, 2020
正文
在 Observable 上有多种方法可以获取数据。但由于我们刚刚开始,让我们使用最简单的:文件附件。
这个笔记本有一个包含每日温度读数的 CSV 文件。我使用 Shift-Command-U ⇧⌘U 键盘快捷键添加它;你还可以通过将文件拖放到文件附件窗格来附加文件,文件附件窗格可通过笔记本菜单或单击上面的回形针图标访问。
FileAttachment
函数仅返回一个句柄,该句柄允许你选择所需的表示形式,例如 blob 、 buffer 或(UTF-8编码的)文本。对于 CSV 文件,我们可以调用 file.text
按照想要的字符串形式获取文件内容。
当然,更有用的方法是将文本解析为具有 date
和 temperature
属性的对象,我们可以通过将文本传递给 d3.csvParse 来实现。(D3 在下面的附录中加载,在笔记本中的每个单元都可用。)
单击下面的数组查看对象。
虽然 Observable 隐性地等待跨单元的 promises ,但我们必须等待 file.text
promise ,因为我们希望访问同一单元中的返回值。
默认情况下,D3 不进行类型推断,因此 date
和 temperature
属性都是字符串。这使得它们很难相处。例如,如果你尝试相加两个温度,将连接它们。哎呀!