Javascript 如何加载dc.js和crossfilter.js?
我试图使用dc.js和crossfilter.js,但我总是Javascript 如何加载dc.js和crossfilter.js?,javascript,d3.js,dc.js,crossfilter,Javascript,D3.js,Dc.js,Crossfilter,我试图使用dc.js和crossfilter.js,但我总是 "Uncaught TypeError: Cannot read property 'format' of undefined dc.js:484 Uncaught TypeError: Cannot read property '1' of null header.js:3 Uncaught ReferenceError: dc is not defined (index):39 " 我认为加载库的顺序没有问题,但我不知道格式是
"Uncaught TypeError: Cannot read property 'format' of undefined dc.js:484
Uncaught TypeError: Cannot read property '1' of null header.js:3
Uncaught ReferenceError: dc is not defined (index):39 "
我认为加载库的顺序没有问题,但我不知道格式是什么,为什么会导致问题!!我甚至没有使用外部文件来加载数据
My index.html
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="css/dc.css"/>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript" src="js/crossfilter.js" ></script>
<script type="text/javascript" src="js/d3.js" ></script>
<script type="text/javascript" src="js/dc.js"></script>
</head>
<body>
<div class="container">
<script type="text/javascript" src="js/header.js"></script>
<p>This example demonstrates assigning a threshold dynamically to a pie chart by creating a new dimension based on slider input.</p>
<div id="inputSlider">
<div><input type="range" id="slideRange" value="0.5" min="0" max="1.0" step="0.1" onchange="updateSlider(this.value)"></div>
Score threshold: <span id="sliderValue">0.5</label>
</div>
<div id="dc-coreAcc-piechart"></div>
<div id="dc-score-barchart"></div>
<script type="text/javascript">
var data = [
{ "book": "A", "scores": 45 },
{ "book": "B", "scores": 34 },
{ "book": "C", "scores": 54 },
{ "book": "D", "scores": 27 },
{ "book": "E", "scores": 70 },
{ "book": "F", "scores": 25 },
{ "book": "G", "scores": 92 },
{ "book": "H", "scores": 22 },
{ "book": "I", "scores": 40 },
{ "book": "J", "scores": 10 },
{ "book": "K", "scores": 40 }
];
//## Create Chart Objects
var scoreChart = dc.barChart("#dc-score-barchart")
.xAxisLabel('book_id')
.yAxisLabel('score');
var goodYesNoPieChart = dc.pieChart('#dc-coreAcc-piechart');
//### Create Crossfilter Dimensions and Groups
var ndx = crossfilter(data);
var all = ndx.groupAll();
var bookDimension = ndx.dimension(function (d) {return d.book;}),
bookscoresGroup = bookDimension.group().reduceSum(function(d) {return d.scores;});
//## score bar chart
scoreChart.width(320)
.height(320)
.dimension(bookDimension)
.group(bookscoresGroup)
.elasticY(true)
.x(d3.scale.ordinal())
.xUnits(dc.units.ordinal)
.colors(["orange"])
.yAxis().ticks(5);
//## pie chart
// reusable function to create threshold dimension
function coreCount_from_threshold() {
var scoreThreshold=document.getElementById('slideRange').value;
scoreThreshold=parseFloat(scoreThreshold);
if (isNaN(scoreThreshold)) {
scoreThreshold=0.5
}
return ndx.dimension(function (d) {
var maxNumber=80;
if (d.scores >maxNumber*scoreThreshold) {
return 'High';
} else {
return 'Low';
}
});
}
var coreCount = coreCount_from_threshold();
var coreCountGroup = coreCount.group();
goodYesNoPieChart
.width(320)
.height(320)
.radius(120)
.innerRadius(40)
.dimension(coreCount)
.title(function(d){return d.value;})
.group(coreCountGroup)
.label(function (d) {
if (goodYesNoPieChart.hasFilter() && !goodYesNoPieChart.hasFilter(d.key)) {
return d.key + '(0%)';
}
var label = d.key;
if (all.value()) {
label += '(' + Math.floor(d.value / all.value() * 100) + '%)';
}
return label;
})
dc.renderAll();
//## change slider score value to re-assign the data in pie chart
function updateSlider(slideValue) {
var sliderDiv = document.getElementById("sliderValue");
sliderDiv.innerHTML = slideValue;
coreCount.dispose();
coreCount = coreCount_from_threshold();
coreCountGroup = coreCount.group();
goodYesNoPieChart
.dimension(coreCount)
.group(coreCountGroup);
dc.redrawAll();
}
</script>
</div>
</body>
</html>
此示例演示如何通过基于滑块输入创建新维度,将阈值动态分配给饼图
评分标准:0.5分
风险值数据=[
{“书”:“A”,“分数”:45},
{“书”:“B”,“分数”:34},
{“书”:“C”,“分数”:54},
{“书”:“D”,“分数”:27},
{“书”:“E”,“分数”:70},
{“书”:“F”,“分数”:25},
{“书”:“G”,“分数”:92},
{“书”:“H”,“分数”:22},
{“书”:“我”,“分数”:40},
{“书”:“J”,“分数”:10},
{“书”:“K”,“分数”:40}
];
//##创建图表对象
var scoreChart=dc.条形图(“dc分数条形图”)
.xAxisLabel('book_id'))
.yAxisLabel(“分数”);
var goodYesNoPieChart=dc.pieChart(“#dc coreAcc pieChart”);
//###创建交叉筛选维度和组
var ndx=交叉滤波器(数据);
var all=ndx.groupAll();
var bookDimension=ndx.dimension(函数(d){return d.book;}),
bookCoresGroup=bookDimension.group().reduceSum(函数(d){返回d.scores;});
//##记分条形图
记分表宽度(320)
.身高(320)
.维度(bookDimension)
.group(bookscoresGroup)
.弹性(真实)
.x(d3.scale.ordinal())
.xUnits(dc.units.序数)
.颜色([“橙色”])
.yAxis().ticks(5);
//##饼图
//创建阈值维度的可重用函数
函数coreCount_from_threshold(){
var scoreThreshold=document.getElementById('slideRange')。值;
scoreThreshold=parseFloat(scoreThreshold);
如果(isNaN(分数阈值)){
得分阈值=0.5
}
返回ndx.dimension(函数(d){
var maxNumber=80;
如果(d.scores>maxNumber*ScoresThreshold){
返回“高”;
}否则{
返回“低”;
}
});
}
var corecont=corecont_from_threshold();
var corecontgroup=corecont.group();
再见,再见
.宽度(320)
.身高(320)
.半径(120)
.内半径(40)
.尺寸(芯数)
.title(函数(d){返回d.value;})
.组(coreCountGroup)
.标签(功能(d){
if(goodYesNoPieChart.hasFilter()&&!goodYesNoPieChart.hasFilter(d.key)){
返回d.key+'(0%)';
}
var标签=d.key;
if(all.value()){
标签+='('+Math.floor(d.value/all.value()*100)+'%);
}
退货标签;
})
dc.renderAll();
//##更改滑块分数值以重新分配饼图中的数据
函数更新滑动器(滑动值){
var sliderDiv=document.getElementById(“sliderValue”);
sliderDiv.innerHTML=slideValue;
coreCount.dispose();
coreCount=coreCount_from_threshold();
coreCountGroup=coreCount.group();
再见,再见
.尺寸(芯数)
.组(coreCountGroup);
dc.redrawAll();
}
我做错什么了吗?有人可以帮我加载以下链接吗
我希望这些链接能帮助您。Dc.js还不支持D3版本4。切换到D3V3.x,您的问题应该会得到解决 我仍然在控制台中遇到相同的错误:(看起来是坏的d3导致了其他错误,试试看