/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

export default {
    legend: {
        bottom: '5%',
        data: ['rose1', 'rose2', 'rose3', 'rose4']
    },
    series : [
        {
            name:'半径模式',
            type:'pie',
            radius : [20, 80],
            center : ['25%', 110],
            label: {
                show: false,
            },
            lableLine: {
                show: false,
            },
            emphasis: {
                label: {
                    show: true
                },
                lableLine: {
                    show: true
                }
            },
            data:[
                {value:10, name:'rose1'},
                {value:5, name:'rose2'},
                {value:15, name:'rose3'},
                {value:25, name:'rose4'},
                {value:20, name:'rose5'},
                {value:35, name:'rose6'},
                {value:30, name:'rose7'},
                {value:40, name:'rose8'}
            ]
        },
        {
            name:'面积模式',
            type:'pie',
            radius : [30, 80],
            center : ['75%', 110],
            roseType : 'area',
            labelLine: {
                length: 5
            },
            data:[
                {value:10, name:'rose1'},
                {value:5, name:'rose2'},
                {value:15, name:'rose3'},
                {value:25, name:'rose4'},
                {value:20, name:'rose5'},
                {value:35, name:'rose6'},
                {value:30, name:'rose7'},
                {value:40, name:'rose8'}
            ]
        },
        {
            name:'仪表盘',
            type:'gauge',
            radius : 100,
            center : ['50%', 280],
            detail : {formatter:'{value}%'},
            data:[
                {value:50, name:'Gauge'}
            ]
        }
    ]
};
