【问题标题】:Uncaught TypeError: Cannot read property '0' of undefined - highcharts未捕获的类型错误:无法读取未定义的属性“0”-highcharts
【发布时间】:2013-08-17 11:49:22
【问题描述】:

我正在尝试绘制 HighCharts - 极地风玫瑰图

参考:http://www.highcharts.com/demo/polar-wind-rose

但是当我检查我的 chrome 控制台时,图表没有被绘制出来,我发现了这个错误 未捕获的类型错误:无法读取未定义的属性“0”

无法理解为什么会这样

我的 JS 代码:

function createWindRoseChart(divID, tableID, graphTitle) {
    var chart = new Highcharts.Chart({
        data: {
            table: tableID,
            startRow: 1,
            endRow: 10,
            endColumn: 8
        },
        chart: {
            polar: true,
            type: 'column',
            renderTo: divID,
            backgroundColor: 'rgba(255, 255, 255, 0.1)'
        },

        title: {
            text: graphTitle
        },

        subtitle: {

        },

        pane: {
            size: '85%'
        },

        legend: {
            reversed: true,
            align: 'right',
            verticalAlign: 'top',
            y: 100,
            layout: 'vertical'
        },

        xAxis: {
            tickmarkPlacement: 'on'
        },

        yAxis: {
            min: 0,
            endOnTick: false,
            showLastLabel: true,
            title: {
                text: 'Frequency (%)'
            },
            labels: {
                formatter: function () {
                    return this.value + '%';
                }
            }
        },

        tooltip: {
            valueSuffix: '%',
            followPointer: true
        },

        plotOptions: {
            series: {
                stacking: 'normal',
                shadow: false,
                groupPadding: 0,
                pointPlacement: 'on'
            }
        }
    });
}

它的调用函数

createWindRoseChart('divCRATicketType', 'freq', 'Calls Open');

用于创建风玫瑰图的HTML表格

<html>
    <body>
        <table id='freq' border='1' cellpadding='5' align='center'>
            <tr align='center'><th class='freq'>CRA</th><th class='freq'>FLM</th><th class='freq'>SLM</th><th class='freq'>Network</th><th class='freq'>UPS</th><th class='freq'>Electrical</th><th class='freq'>Power Failure</th><th class='freq'>Bank</th><th class='freq'>Cashout</th></tr>
            <tr align='center'><td class='dir'>SIS</td><td class='data'>2</td><td class='data'>1</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>1</td><td class='data'>0</td><td class='data'>0</td></tr>
            <tr align='center'><td class='dir'>S&IB</td><td class='data'>2</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td></tr>
            <tr align='center'><td class='dir'>Branch</td><td class='data'>1</td><td class='data'>1</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td><td class='data'>0</td></tr>
            <tr align='center'><td class='dir'>Securitrans</td><td class='data'>45</td><td class='data'>13</td><td class='data'>4</td><td class='data'>1</td><td class='data'>6</td><td class='data'>4</td><td class='data'>1</td><td class='data'>0</td></tr>
            <tr align='center'><td class='dir'>Writer</td><td class='data'>33</td><td class='data'>8</td><td class='data'>5</td><td class='data'>0</td><td class='data'>4</td><td class='data'>0</td><td class='data'>4</td><td class='data'>1</td></tr>
            <tr align='center'><td class='dir'>CMS</td><td class='data'>86</td><td class='data'>23</td><td class='data'>6</td><td class='data'>12</td><td class='data'>5</td><td class='data'>13</td><td class='data'>4</td><td class='data'>7</td></tr>
            <tr align='center'><td class='dir'>SDB CISCO</td><td class='data'>20</td><td class='data'>5</td><td class='data'>1</td><td class='data'>0</td><td class='data'>3</td><td class='data'>6</td><td class='data'>3</td><td class='data'>1</td></tr>
            <tr align='center'><td class='dir'>Brinks</td><td class='data'>27</td><td class='data'>5</td><td class='data'>2</td><td class='data'>2</td><td class='data'>0</td><td class='data'>0</td><td class='data'>7</td><td class='data'>1</td></tr>
            <tr align='center'><td class='dir'>Secure Value</td><td class='data'>30</td><td class='data'>8</td><td class='data'>1</td><td class='data'>1</td><td class='data'>2</td><td class='data'>3</td><td class='data'>7</td><td class='data'>0</td></tr>
        </table>
    </body>
</html>

【问题讨论】:

  • 没有id为divCRATicketType的div,要么创建一个,要么去掉renderTo: divID,这一行
  • 我在函数中将divCRATicketType 传递给divID ...然后将其分配为renderTo
  • 是的,但这里的 html 标记中没有 &lt;div id="divCRATicketType" /&gt;
  • 不清楚您的代码在哪里引发错误。请提供更多代码,失败的实际行并删除不必要的代码(就像renderTo)以缩小导致代码中断的原因
  • 这里有一个你的代码有点工作:jsfiddle.net/HeRPW,上面的错误不会被抛出。

标签: javascript highcharts


【解决方案1】:

这是一个正确的polar 图表,其中包含您的数据:

小提琴示例here.

【讨论】:

    猜你喜欢
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多