<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta name="robots" content="noindex, nofollow">
    <title>ECharts2 · Example</title>

    <link rel="shortcut icon" href="../asset/ico/favicon.png">

    <link href="../asset/css/font-awesome.min.css" rel="stylesheet">
    <link href="../asset/css/bootstrap.css" rel="stylesheet">
    <link href="../asset/css/carousel.css" rel="stylesheet">
    <link href="../asset/css/echartsHome.css" rel="stylesheet">
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->

    <script src="./www/js/echarts.js"></script>
    <script src="../asset/js/codemirror.js"></script>
    <script src="../asset/js/javascript.js"></script>

    <link href="../asset/css/codemirror.css" rel="stylesheet">
    <link href="../asset/css/monokai.css" rel="stylesheet">
</head>

<body>
    <!-- Fixed navbar -->
    <div class="navbar navbar-default navbar-fixed-top" role="navigation" id="head"></div>


    <div class="container-fluid">
        <div class="row-fluid example">
            <div id="sidebar-code" class="col-md-4">
                <div class="well sidebar-nav">
                    <div class="nav-header"><a href="#" onclick="autoResize()" class="glyphicon glyphicon-resize-full" id ="icon-resize" ></a>option</div>
                    <textarea id="code" name="code">
option = {
    title : {
        text: '测试数据'
    },
    tooltip : {
        trigger: 'item',
        formatter: function (params) {
            if (params.indicator2) { // is edge
                return params.value.weight;
            } else {// is node
                return params.name
            }
        }
    },
    toolbox: {
        show : true,
        y:'bottom',
        feature : {
            restore : {show: true},
            magicType: {show: true, type: ['force', 'chord']},
            saveAsImage : {show: true}
        }
    },
    legend: {
        x: 'right',
        data:['g1','g2', 'g3', 'g4']
    },
    series : [
        {
            type:'chord',
            radius : ['55%', '75%'],
            center : ['50%', '50%'],
            padding : 2,
            sort : 'descending', // can be 'none', 'ascending', 'descending'
            sortSub : 'descending', // can be 'none', 'ascending', 'descending'
            startAngle : 90,
            clockWise : false,
            showScale : true,
            showScaleText : true,
            itemStyle : {
                normal : {
                    borderWidth : 0,
                    borderColor : '#000',
                    chordStyle : {
                        borderWidth : 1,
                        borderColor : '#333'
                    },
                    label: {
                        show: true,
                        color: 'red'
                    }
                },
                emphasis : {
                    borderWidth : 0,
                    borderColor : '#000',
                    chordStyle : {
                        borderWidth : 2,
                        borderColor : 'black'
                    }
                }
            },
            data : [
                {
                    name : 'g1',
                    itemStyle : {
                        normal: {
                            color: 'rgba(255,30,30,0.5)',
                            lineStyle : {
                                width: 1,
                                color: 'green'
                            }
                        },
                        emphasis: {
                            color: 'yellow',
                            lineStyle : {
                                width: 2,
                                color: 'blue'
                            }
                        }
                    }
                },
                {name : 'g2'},
                {name : 'g3'},
                {name : 'g4'}
            ],
            matrix : [
                [11975,  5871, 8916, 2868],
                [ 1951, 10048, 2060, 6171],
                [ 8010, 16145, 8090, 8045],
                [ 1013,   990,  940, 6907]
            ],
            markPoint : {
                symbol: 'star',
                data : [
                    {name : '打酱油的标注', value : 100, x:'5%', y:'50%', symbolSize:32},
                    {name : '打酱油的标注', value : 100, x:'95%', y:'50%', symbolSize:32}
                ]
            }
        }
    ]
};
                    </textarea>
              </div><!--/.well -->
            </div><!--/span-->
            <div id="graphic" class="col-md-8">
                <div id="main" class="main"></div>
                <div>
                    <button type="button" class="btn btn-sm btn-success" onclick="refresh(true)">刷 新</button>
                    <span class="text-primary">切换主题</span>
                    <select id="theme-select"></select>

                    <span id='wrong-message' style="color:red"></span>
                </div>
            </div><!--/span-->
        </div><!--/row-->

        </div><!--/.fluid-container-->

    <footer id="footer"></footer>
    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="../asset/js/jquery.min.js"></script>
    <script type="text/javascript" src="../asset/js/echartsHome.js"></script>
    <script src="../asset/js/bootstrap.min.js"></script>
    <script src="../asset/js/echartsExample.js"></script>
</body>
</html>
