我正在尝试使用 D3 创建一个词云。为此,我正在修改 Jason Davis 的代码:https ://github.com/jasondavies/d3-cloud/blob/master/examples/simple.html
我想更改代码,以便我可以链接到包含大量文本的 .txt 或 .csv 文件,而不是使用单词数组。
我尝试使用 d3.text() 和 d3.csv() 方法,但我做错了。由于这两种方法都需要 URL,因此我使用了数据 URL 生成器 ( http://dataurl.net/#dataurlmaker ) 将文本文件转换为 URL。然后我更改了代码并插入了dataurl,如下所示:
var fill = d3.scale.category20();
var text = d3.text(data:text/plain;base64,RGVsbCwgdGhl....continued....more...URLdata)
d3.layout.cloud().size([300, 300])
.words(text.map(function(d) {
return {text: d, size: 10 + Math.random() * 90};
}))
.rotate(function() { return ~~(Math.random() * 2) * 90; })
.font("Impact")
.fontSize(function(d) { return d.size; })
.on("end", draw)
.start();
我尝试的第二个选项是将文本插入到 html 中的脚本标记中,然后在 JS 代码中引用它,如下所示:
<!DOCTYPE html>
<script src="../lib/d3/d3.js"></script>
<script id="text" type="text/plain">Dell, the company, has...more..text...</script>
<script src="../d3.layout.cloud.js"></script>
<body>
<script>
var fill = d3.scale.category20();
var text = d3.select("#text");
d3.layout.cloud().size([300, 300])
.words(text.map(function(d) {
return {text: d, size: 10 + Math.random() * 90};
}))
etc........
有人可以帮我找出一种读取 .txt 或 .csv 文件的方法吗?谢谢!