javascript - 加载时 donut 切片不可见

标签 javascript highcharts graphing

这是一个 jsFiddle,用于解决我一直试图解决的问题:

http://jsfiddle.net/kSSYg/

加载圆环图时,切片不可见,但图例可见。当您将鼠标悬停在上方时,它们就会出现。

还有其他人遇到过这种情况吗?

代码

$(function () {
    var chart;
    $(document).ready(function() {

        var colors = Highcharts.getOptions().colors,
                        categories = ['Security', 'Interfaces', 'SNMP', 'Management', 'General'],
                        name = 'Rule Categories',
                        data = [{"y":23.53,"drilldown":{"name":"Security","categories":["Pass","Fail"],"data":[11.77,11.77]}},{"y":23.53,"drilldown":{"name":"Interfaces","categories":["Pass","Fail"],"data":[23.53,0]}},{"y":23.53,"drilldown":{"name":"SNMP","categories":["Pass","Fail"],"data":[11.77,11.77]}},{"y":5.88,"drilldown":{"name":"Management","categories":["Pass","Fail"],"data":[5.88,0]}},{"y":23.53,"drilldown":{"name":"General","categories":["Pass","Fail"],"data":[23.53,0]}}];


        // Build the data arrays
        var browserData = [];
        var versionsData = [];
        for (var i = 0; i < data.length; i++) {

            // add browser data
            browserData.push({
                name: categories[i],
                y: data[i].y,
                color: data[i].color
            });

            // add version data
            for (var j = 0; j < data[i].drilldown.data.length; j++) {
                var brightness = 0.2 - (j / data[i].drilldown.data.length) / 5 ;
                versionsData.push({
                    name: data[i].drilldown.categories[j],
                    y: data[i].drilldown.data[j],
                    color: Highcharts.Color(data[i].color).brighten(brightness).get()
                });
            }
        }

        // Create the chart
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'pie'
            },
            title: {
                text: 'Browser market share, April, 2011'
            },
            yAxis: {
                title: {
                    text: 'Total percent market share'
                }
            },
            plotOptions: {
                pie: {
                    shadow: false
                }
            },
            tooltip: {
                valueSuffix: '%'
            },
            series: [{
                name: 'Browsers',
                data: browserData,
                size: '60%',
                dataLabels: {
                    formatter: function() {
                        return this.y > 5 ? this.point.name : null;
                    },
                    color: 'white',
                    distance: -30
                }
            }, {
                name: 'Versions',
                data: versionsData,
                innerSize: '60%',
                dataLabels: {
                    formatter: function() {
                        // display only if larger than 1
                        return this.y > 1 ? '<b>'+ this.point.name +':</b> '+ this.y +'%'  : null;
                    }
                }
            }]
        });
    });

});​

最佳答案

您必须定义自己的颜色吗?如果删除设置颜色的两条线,它就可以工作。请参阅http://jsfiddle.net/kSSYg/2/

删除:

color: data[i].color

color: Highcharts.Color(data[i].color).brighten(brightness).get()

这些行不起作用的原因是您的数据数组对象没有定义属性“颜色”

关于javascript - 加载时 donut 切片不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164459/

相关文章:

javascript - 在 Promise 调用的错误函数回调之后附加对象的用法是什么

javascript - Angularjs 应用程序无法从 Web 服务加载数据

javascript - 返回空对象的箭头函数然后返回一个函数?

javascript - 使用 Jquery.Flot 或类似工具绘制此图

c++ - 钳位到 "easy"数字

Javascript 和 AI,事实还是虚构?

css - Highcharts 样式、图例和自定义字体

Highcharts 堆积条形图隐藏数据标签不重叠

javascript - 将构建数组的 PHP 代码转换为 JS,现在 highcharts 不起作用 - 我做错了什么?

jquery - 使用 flot 更新 dataSet 会重置数据