0

我真的需要能够对数据列执行向下钻取。请注意,每月将有 4 列数据。

我还在 Highcharts 网站上看到了下钻列的示例。如果数据是硬编码的,我确实理解它是如何工作的。但是这些数据需要从数据库中提取。

我可以从以下 my_data.php 文件中获取基本图表。

[{"name":"ONE","data":[1077668]},{"name":"TWO","data":[39657923]}, {"name":"THREE","data":[99428783]},{"name":"FOUR","data":[4431354]}]

<script type="text/javascript">
    $(function () {
        var chart;
        $(document).ready(function() {
            $.getJSON("my_data.php", function(json) {

                chart = new Highcharts.Chart({
                    chart: {
                        renderTo: 'container',
                        type: 'column',
                        marginRight: 130,
                        marginBottom: 25
                    },
                    title: {
                        text: 'testing',
                        x: -20 //center
                    },
                    subtitle: {
                        text: '',
                        x: -20
                    },
                    xAxis: {
                        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
                    },
                    yAxis: {
                        title: {
                            text: 'Amount'
                        },
                        plotLines: [{
                            value: 0,
                            width: 1,
                            color: '#808080'
                        }]
                    },
                    tooltip: {
                        formatter: function() {
                            formatter: function() {
                                return '<b>'+ this.series.name +'</b><br/>'+
                                    this.x +': '+ this.y;
                            }

                        },
                    legend: {
                        layout: 'vertical',
                        align: 'right',
                        verticalAlign: 'top',
                        x: -10,
                        y: 100,
                        borderWidth: 0
                    },
                    series: json
                });
            });
        });
    });
</script>

我真的很困惑在这种类型的图表中我会在哪里放置下钻调用?我知道它应该像下面这样。我还认为不同的钻取会有多个 if/else 语句。

click: function() {
    var drilldown = this.drilldown;
    if (drilldown) { // drill down
        var chart = this.series.chart;
        $.getJSON(...., function(data){
            chart.setTitle({
                text: data.name
            });
            setChart(data.name, data.categories, data.data, data.color, data.level);
        });
    } else { // restore
        setChart(name, categories, data, null, level);    
    }
}

如果我使用了错误的图表数据,请告诉我。我可以使用这样的东西,但我在使用数据库中的初始数据生成图表时遇到问题。因为我会在哪里设置钻孔名称(如 0 级、1 级等)有同样的问题

var colors = Highcharts.getOptions().colors,
categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'],
name = 'Browser brands',
data = [{
    y: 55.11,
    color: colors[0],
    drilldown: {
        name: 'MSIE versions',
        categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'],
        data: [10.85, 7.35, 33.06, 2.81],
        color: colors[0]
    }
}, {
    y: 21.63,
    color: colors[1],
    drilldown: {
        name: 'Firefox versions',
        categories: ['Firefox 2.0', 'Firefox 3.0', 'Firefox 3.5', 'Firefox 3.6', 'Firefox 4.0'],
        data: [0.20, 0.83, 1.58, 13.12, 5.43],
        color: colors[1]
    }
}, {
4

1 回答 1

0

您需要以 JSON 格式从 php 获取数据,用于向下钻取。

从 php 准备数据的解决方案可在此处获得:http: //docs.highcharts.com/#preprocessing

于 2013-03-01T11:49:49.427 回答