Javascript 如何加载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 " 我认为加载库的顺序没有问题,但我不知道格式是

我试图使用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 "
我认为加载库的顺序没有问题,但我不知道格式是什么,为什么会导致问题!!我甚至没有使用外部文件来加载数据 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导致了其他错误,试试看