【发布时间】:2016-09-28 14:25:26
【问题描述】:
*d3.layout.cloud() 抛出错误:d3.layout.cloud 不是函数。
我在TypeError: d3.layout.cloud is not a function 尝试过 Adam Pearce 的回答,但这对我不起作用。
谁能告诉我我做错了什么。
我正在使用 d3 版本 3
文件
d3.json(inputData, (data)=>{
var cloud = d3.layout.cloud().size([800, 300])
.words(data["subtype"])
.fontSize((d)=>{ return d.values.length + "px"; })
.on("end", draw )
.start();
function draw(words){
// Text charts
const text = svgCanvas.selectAll("#text_chart")
.data(words)
.enter()
.append("text")
.attr("id", "text_chart")
.attr("fill", (d,i)=>{ return color(i) })
.attr("transform", (d,i)=>{ return "translate( 20 , "+Math.floor(Math.random()*(d.values.length*2))+")" })
.style("font-size", (d)=>{ return d.values.length + "px"; })
.style("position","absolute")
.style("top", (d)=>{return Math.floor(Math.random()*d.values.length) })
.style("left", (d)=>{return Math.floor(Math.random()*d.values.length) })
.text((d)=>{ return d.key });
}
}
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8"/>
<link href="https://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet">
<link rel="stylesheet" href="./css/style.css" media="screen" title="no title">
<title>Test</title>
</head>
<body>
<h2>Stuff my phone tracks</h2>
<small>Filter</small>
<label><input id="bars" type="radio" name="chartToggle" value="Bars"> Bars
</label>
<label><input id="text" type="radio" name="chartToggle" value="Text"> Text
</label>
<label><input id="all" type="radio" name="chartToggle" value="All"> All
</label>
<div id="canvas"></div>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="https://gist.github.com/emeeks/3361332/raw/61cf57523fe8cf314333e5f60cc266351fec2017/d3.layout.cloud.js"></script> <script src="./main.js"></script>
<script src="./main.js"></script>
</body>
</html>
【问题讨论】:
标签: javascript d3.js data-visualization