highcharts正确的json输入 [英] highcharts correct json input

查看:67
本文介绍了highcharts正确的json输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

UPDTAED:现在,使用下面的代码,json可以正确解析了,

UPDTAED:Now with the below code, the json is parsing correctly ,

但是在初始加载时不会显示列,如果我将光标放在上方,则可以看到显示序列名称和值的工具提示.但是,如果我调整浏览器窗口的大小,则会出现这些列.我试图添加chart.redraw();在updatedChart()之后;但这对我的div没什么帮助

But the columns are not displayed on the initial load, if i put the cursor over i can see the tooltip displaying the series name and value. However, if i re-size the browser window the columns appear. i tried adding chart.redraw(); after the updatedChart(); but it dosent help my div is as below

<div id="container" style="min-width: 400px ; height: 650; margin:0 auto"></div>

请问有什么想法吗?另外,我无法在jsfiddle上重现此问题,并已在safari,chrome和firefox上进行了测试(都显示出这种奇怪的行为)

Any ideas please? Also, i cannot re-produce this problem on jsfiddle and have tested this on safari,chrome and firefox (all showing this strange behavior)

            var chart;
            options = {
                chart: {
                    renderTo: 'container',
                    type: 'column',
                },
                title: {
                    text: 'Some title'
                },
                subtitle: {
                    text: 'subtitle'
                },
                xAxis: {
                    categories: [],
                    title: {
                        text: null
                    }
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'y-Axis',
                        align: 'high'
                    }
                },
                tooltip: {
                    formatter: function() {
                        return '' + this.series.name + ': ' + this.y + ' ';
                    }
                },
                plotOptions: {
                    bar: {
                        dataLabels: {
                            enabled: true
                        }
                    }
                },
                legend: {
                    layout: 'vertical',
                    align: 'right',
                    verticalAlign: 'top',
                    x: -100,
                    y: 100,
                    floating: true,
                    borderWidth: 1,
                    backgroundColor: '#FFFFFF',
                    shadow: true
                },
                credits: {
                    enabled: false
                },
                series: 
                []
            };
            $(document).ready(function() {
                chart= new Highcharts.Chart(options)
                console.log("calling update chart");    
                updateChart();
            });

            function updateChart() {
                $.ajax({
                    type: "GET",
                    url: "test.json",
                    async: false,
                    dataType: "json",
                    success: function(data){
                        console.log(data);


                        var i=0;
                        $.each(data,function(index,item){
                            console.log(data.Chart1[index]);
                            console.log("i value is "+i);
                            chart.addSeries(data.Chart1[index]);
                            i++;
                        });

                    }
                });
            }
            }

我的json输入文件在下面

my json input file is below

            [
                        {
                            name: 'name1',
                            y: [32.6,16.6,1.5]
                        }, {
                            name: 'name2',
                            y: [6.7,0.2,0.6]
                        }, {
                            name: 'name3',
                            y: [1,3.7,0.7]
                        }, {
                            name: 'name4',
                            y: [20.3,8.8,9.5]
                        },{
                            name: 'name5',
                            y: [21.5,10,7.2]
                        }, {
                            name: 'name6',
                            y: [1.4,1.8,3.7]
                        }, {
                            name: 'name7',
                            y: [8.1,0,0]
                        }, {
                            name: 'name8',
                            y: [28.9,8.9,6.6]
                        }
                    ]

推荐答案


var chart = null,
    options = {
        chart: {
            renderTo: 'container',
            type: 'column'
        },
        title: {
            text: 'Some title'
        },
        subtitle: {
            text: 'subtitle'
        },
        xAxis: {
            categories: [],
            title: {
                text: null
            }
        },
        yAxis: {
            min: 0,
            title: {
                text: 'y-Axis',
                align: 'high'
            }
        },
        tooltip: {
            formatter: function() {
                return '' + this.series.name + ': ' + this.y + ' ';
            }
        },
        plotOptions: {
            bar: {
                dataLabels: {
                    enabled: true
                }
            }
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'top',
            x: -100,
            y: 100,
            floating: true,
            borderWidth: 1,
            backgroundColor: '#FFFFFF',
            shadow: true
        },
        credits: {
            enabled: false
        },
        series: []
    };
$(document).ready(function() {
    updateChart();
});

function updateChart() {
    $.getJSON('test.json', function(data) {

        // check if the chart's already rendered
        if (!chart) {
            // if it's not rendered you have to update your options
            options.series = data;
            chart = new Highcharts.Chart(options);
        } else {
            // if it's rendered you have to update dinamically
            jQuery.each(data, function(seriePos, serie) {
                chart.series[seriePos].setData(serie, false);
            });
            chart.redraw();
        }
    });
}

提琴手: LINK

这篇关于highcharts正确的json输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆