爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • Report

  • Script

  • EChart

    • ECharts使用说明

      • ECharts特性
      • ECharts安装
      • ECharts配置语法
      • 在FastWeb中引入ECharts
      • ECharts基础概念概览
      • 个性化图表的样式
      • ECharts中的样式简介
      • 异步数据加载和更新
      • 使用dataset管理数据
      • 使用transform进行数据转换
      • 在图表中加入交互组件
      • 移动端自适应
        • 1. ECharts组件的定位和布局
        • 2. Media Query
      • 数据的视觉映射
      • ECharts中的事件和性为
      • 动态排序柱状图
      • 小例子自己实现拖拽
      • 小例子实现日历图
      • 旭日图
      • 自定义系列
      • 富文本标签
    • ECharts属性说明

  • Chart

  • DB Install

  • HiDesk

  • HiNAT

  • ReportBuilder

目录

移动端自适应

# 移动端自适应

  Apache EChartsTM 工作在用户指定高宽的 DOM 节点(容器)中。ECharts 的『组件』和『系列』都在这个 DOM 节点中,每个节点都可以由用户指定位置。图表库内部并不适宜实现 DOM 文档流布局,因此采用类似绝对布局的简单容易理解的布局方式。但是有时候容器尺寸极端时,这种方式并不能自动避免组件重叠的情况,尤其在移动端小屏的情况下。

  另外,有时会出现一个图表需要同时在PC、移动端上展现的场景。这需要 ECharts 内部组件随着容器尺寸变化而变化的能力。

  为了解决这个问题,ECharts 完善了组件的定位设置,并且实现了类似 CSS Media Query (opens new window) 的自适应能力。

# 1. ECharts组件的定位和布局

  大部分『组件』和『系列』会遵循两种定位方式:

left/right/top/bottom/width/height 定位方式:

  这六个量中,每个量都可以是『绝对值』或者『百分比』或者『位置描述』。

  • 绝对值

      单位是浏览器像素(px),用 number 形式书写(不写单位)。例如 {left: 23, height: 400}。

  • 百分比

      表示占 DOM 容器高宽的百分之多少,用 string 形式书写。例如 {right: '30%', bottom: '40%'}。

  • 位置描述

    • 可以设置 left: 'center',表示水平居中。
    • 可以设置 top: 'middle',表示垂直居中。

  这六个量的概念,和 CSS 中六个量的概念类似:

  • left:距离 DOM 容器左边界的距离。
  • right:距离 DOM 容器右边界的距离。
  • top:距离 DOM 容器上边界的距离。
  • bottom:距离 DOM 容器下边界的距离。
  • width:宽度。
  • height:高度。

  在横向,left、right、width 三个量中,只需两个量有值即可,因为任两个量可以决定组件的位置和大小,例如 left 和 right 或者 right 和 width 都可以决定组件的位置和大小。   纵向,top、bottom、height 三个量,和横向类同不赘述。

center / radius 定位方式:

  • center

    是一个数组,表示 [x, y],其中,x、y可以是『绝对值』或者『百分比』,含义和前述相同。

  • radius

      是一个数组,表示 [内半径, 外半径],其中,内外半径可以是『绝对值』或者『百分比』,含义和前述相同。

      在自适应容器大小时,百分比设置是很有用的。

横向(horizontal)和纵向(vertical)

  ECharts的『外观狭长』型的组件(如 legend、visualMap、dataZoom、timeline等),大多提供了『横向布局』『纵向布局』的选择。例如,在细长的移动端屏幕上,可能适合使用『纵向布局』;在PC宽屏上,可能适合使用『横向布局』。

  横纵向布局的设置,一般在『组件』或者『系列』的 orient 或者 layout 配置项上,设置为 'horizontal' 或者 'vertical'。

与 ECharts2 的兼容:

  ECharts2 中的 x/x2/y/y2 的命名方式仍被兼容,对应于 left/right/top/bottom。但是建议写 left/right/top/bottom。

  位置描述中,为兼容 ECharts2,可以支持一些看起来略奇怪的设置:left: 'right'、left: 'left'、top: 'bottom'、top: 'top'。这些语句分别等效于:right: 0、left: 0、bottom: 0、top: 0,写成后者就不奇怪了。

# 2. Media Query

Media Query (opens new window) 提供了『随着容器尺寸改变而改变』的能力。

  如下例子,可尝试拖动右下角的圆点,随着尺寸变化,legend 和 系列会自动改变布局位置和方式。

  • FastWeb TUgURLFrame示例:

  如需在FastWeb中的TUgURLFrame中实现上述效果,则修改其HTML属性,使用下列内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.1.2/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/jquery/1.10.0/jquery.min.js"></script>
    
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 100%;height:600px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        var option;

        var ROOT_PATH = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples';
        
        $.when(
            $.getScript(ROOT_PATH + '/data/asset/data/timelineGDP.js'),
            $.getScript(ROOT_PATH + '/data/asset/data/draggable.js')
        ).done(function () {

            draggable.init(
                $('div[_echarts_instance_]')[0],
                myChart,
                {
                    width: 700,
                    height: 400,
                    throttle: 70
                }
            );

            myChart.hideLoading();



            option = {
                baseOption: {
                    title : {
                        text: '南丁格尔玫瑰图',
                        subtext: '纯属虚构',
                        x:'center'
                    },
                    tooltip : {
                        trigger: 'item',
                        formatter: "{a} <br/>{b} : {c} ({d}%)"
                    },
                    legend: {
                        data:['rose1','rose2','rose3','rose4','rose5','rose6','rose7','rose8']
                    },
                    toolbox: {
                        show : true,
                        feature : {
                            mark : {show: true},
                            dataView : {show: true, readOnly: false},
                            magicType : {
                                show: true,
                                type: ['pie', 'funnel']
                            },
                            restore : {show: true},
                            saveAsImage : {show: true}
                        }
                    },
                    calculable : true,
                    series : [
                        {
                            name:'半径模式',
                            type:'pie',
                            roseType : 'radius',
                            label: {
                                normal: {
                                    show: false
                                },
                                emphasis: {
                                    show: true
                                }
                            },
                            lableLine: {
                                normal: {
                                    show: false
                                },
                                emphasis: {
                                    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',
                            roseType : 'area',
                            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'}
                            ]
                        }
                    ]
                },
                media: [
                    {
                        option: {
                            legend: {
                                right: 'center',
                                bottom: 0,
                                orient: 'horizontal'
                            },
                            series: [
                                {
                                    radius: [20, '50%'],
                                    center: ['25%', '50%']
                                },
                                {
                                    radius: [30, '50%'],
                                    center: ['75%', '50%']
                                }
                            ]
                        }
                    },
                    {
                        query: {
                            minAspectRatio: 1
                        },
                        option: {
                            legend: {
                                right: 'center',
                                bottom: 0,
                                orient: 'horizontal'
                            },
                            series: [
                                {
                                    radius: [20, '50%'],
                                    center: ['25%', '50%']
                                },
                                {
                                    radius: [30, '50%'],
                                    center: ['75%', '50%']
                                }
                            ]
                        }
                    },
                    {
                        query: {
                            maxAspectRatio: 1
                        },
                        option: {
                            legend: {
                                right: 'center',
                                bottom: 0,
                                orient: 'horizontal'
                            },
                            series: [
                                {
                                    radius: [20, '50%'],
                                    center: ['50%', '30%']
                                },
                                {
                                    radius: [30, '50%'],
                                    center: ['50%', '70%']
                                }
                            ]
                        }
                    },
                    {
                        query: {
                            maxWidth: 500
                        },
                        option: {
                            legend: {
                                right: 10,
                                top: '15%',
                                orient: 'vertical'
                            },
                            series: [
                                {
                                    radius: [20, '50%'],
                                    center: ['50%', '30%']
                                },
                                {
                                    radius: [30, '50%'],
                                    center: ['50%', '75%']
                                }
                            ]
                        }
                    }
                ]
            };



            myChart.setOption(option);

        });
    </script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
  • 图表来源:https://echarts.apache.org/examples/zh/editor.html?c=doc-example/pie-media (opens new window)

  要在 option 中设置 Media Query 须遵循如下格式:

option = {
    // 这里是基本的『原子option』。
    title: {...},
    legend: {...},
    series: [{...}, {...}, ...],
    ...,
    media: [ // 这里定义了 media query 的逐条规则。
        {
            query: {...},   // 这里写规则。
            option: {       // 这里写此规则满足下的option。
                legend: {...},
                ...
            }
        },
        {
            query: {...},   // 第二个规则。
            option: {       // 第二个规则对应的option。
                legend: {...},
                ...
            }
        },
        {                   // 这条里没有写规则,表示『默认』,
            option: {       // 即所有规则都不满足时,采纳这个option。
                legend: {...},
                ...
            }
        }
    ]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

  上面的例子中,baseOption、以及 media 每个 option 都是『原子 option』,即普通的含有各组件、系列定义的 option。而由『原子option』组合成的整个 option,我们称为『复合 option』。baseOption 是必然被使用的,此外,满足了某个 query 条件时,对应的 option 会被使用 chart.mergeOption() 来 merge 进去。

query:

  每个 query 类似于这样:

{
    minWidth: 200,
    maxHeight: 300,
    minAspectRatio: 1.3
}
1
2
3
4
5

  现在支持三个属性:width、height、aspectRatio(长宽比)。每个属性都可以加上 min 或 max 前缀。比如,minWidth: 200 表示『大于等于200px宽度』。两个属性一起写表示『并且』,比如:{minWidth: 200, maxHeight: 300} 表示『大于等于200px宽度,并且小于等于300px高度』。

option:

media中的 option 既然是『原子 option』,理论上可以写任何 option 的配置项。但是一般我们只写跟布局定位相关的,例如截取上面例子中的一部分 query option:

media: [
    ...,
    {
        query: {
            maxAspectRatio: 1           // 当长宽比小于1时。
        },
        option: {
            legend: {                   // legend 放在底部中间。
                right: 'center',
                bottom: 0,
                orient: 'horizontal'    // legend 横向布局。
            },
            series: [                   // 两个饼图左右布局。
                {
                    radius: [20, '50%'],
                    center: ['50%', '30%']
                },
                {
                    radius: [30, '50%'],
                    center: ['50%', '70%']
                }
            ]
        }
    },
    {
        query: {
            maxWidth: 500               // 当容器宽度小于 500 时。
        },
        option: {
            legend: {
                right: 10,              // legend 放置在右侧中间。
                top: '15%',
                orient: 'vertical'      // 纵向布局。
            },
            series: [                   // 两个饼图上下布局。
                {
                    radius: [20, '50%'],
                    center: ['50%', '30%']
                },
                {
                    radius: [30, '50%'],
                    center: ['50%', '75%']
                }
            ]
        }
    },
    ...
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

多个 query 被满足时的优先级:

  注意,可以有多个 query 同时被满足,会都被 mergeOption,定义在后的后被 merge(即优先级更高)。

默认 query:

  如果 media 中有某项不写 query,则表示『默认值』,即所有规则都不满足时,采纳这个option。

容器大小实时变化时的注意事项:

  在不少情况下,并不需要容器DOM节点任意随着拖拽变化大小,而是只是根据不同终端设置几个典型尺寸。

  但是如果容器DOM节点需要能任意随着拖拽变化大小,那么目前使用时需要注意这件事:某个配置项,如果在某一个 query option 中出现,那么在其他 query option 中也必须出现,否则不能够回归到原来的状态。(left/right/top/bottom/width/height 不受这个限制。)

『复合 option』 中的 media 不支持 merge

  也就是说,当第二(或三、四、五 ...)次 chart.setOption(rawOption) 时,如果 rawOption 是 复合option(即包含 media 列表),那么新的 rawOption.media 列表不会和老的 media 列表进行 merge,而是简单替代。当然,baseOption 仍然会正常和老的 option 进行merge。

  其实,很少有场景需要使用『复合 option』来多次 setOption,而我们推荐的做法是,使用 mediaQuery 时,第一次setOption使用『复合 option』,后面 setOption 时仅使用 『原子 option』,也就是仅仅用 setOption 来改变 baseOption。


  最后看一个和时间轴结合的例子:
  • FastWeb TUgURLFrame示例:

  如需在FastWeb中的TUgURLFrame中实现上述效果,则修改其HTML属性,使用下列内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/5.1.2/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/jquery/1.10.0/jquery.min.js"></script>
    
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 100%;height:600px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        var option;

        var ROOT_PATH = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples';
        
        $.when(
            $.getScript(ROOT_PATH + '/data/asset/data/timelineGDP.js'),
            $.getScript(ROOT_PATH + '/data/asset/data/draggable.js')
        ).done(function () {

            draggable.init(
                $('div[_echarts_instance_]')[0],
                myChart,
                {
                    width: 700,
                    height: 630,
                    lockY: true,
                    throttle: 70
                }
            );

            myChart.hideLoading();

            var categoryData = [
                '北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江',
                '上海','江苏','浙江','安徽','福建','江西','山东','河南',
                '湖北','湖南','广东','广西','海南','重庆','四川','贵州',
                '云南','西藏','陕西','甘肃','青海','宁夏','新疆'
            ];


            option = {
                baseOption: {
                    timeline: {
                        axisType: 'category',
                        autoPlay: true,
                        playInterval: 1000,
                        data: [
                            '2002-01-01', '2003-01-01', '2004-01-01',
                            '2005-01-01', '2006-01-01', '2007-01-01',
                            '2008-01-01', '2009-01-01', '2010-01-01',
                            '2011-01-01'
                        ],
                        label: {
                            formatter : function(s) {
                                return (new Date(s)).getFullYear();
                            }
                        }
                    },
                    title: {
                        subtext: 'Media Query 示例'
                    },
                    tooltip: {
                        trigger:'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    xAxis: {
                        type: 'value',
                        name: 'GDP(亿元)',
                        max: 30000,
                        data: null
                    },
                    yAxis: {
                        type: 'category',
                        data: categoryData,
                        axisLabel: {interval: 0},
                        splitLine: {show: false}
                    },
                    legend: {
                        data: ['第一产业', '第二产业', '第三产业', 'GDP', '金融', '房地产'],
                        selected: {
                            'GDP': false, '金融': false, '房地产': false
                        }
                    },
                    calculable : true,
                    series: [
                        {name: 'GDP', type: 'bar'},
                        {name: '金融', type: 'bar'},
                        {name: '房地产', type: 'bar'},
                        {name: '第一产业', type: 'bar'},
                        {name: '第二产业', type: 'bar'},
                        {name: '第三产业', type: 'bar'},
                        {name: 'GDP占比', type: 'pie'}
                    ]
                },
                media: [
                    {
                        option: {
                            legend: {
                                orient: 'horizontal',
                                left: 'right',
                                itemGap: 10
                            },
                            grid: {
                                left: '10%',
                                top: 80,
                                right: 90,
                                bottom: 100
                            },
                            xAxis: {
                                nameLocation: 'end',
                                nameGap: 10,
                                splitNumber: 5,
                                splitLine: {
                                    show: true
                                }
                            },
                            timeline: {
                                orient: 'horizontal',
                                inverse: false,
                                left: '20%',
                                right: '20%',
                                bottom: 10,
                                height: 40
                            },
                            series: [
                                {name: 'GDP占比', center: ['75%', '30%'], radius: '28%'}
                            ]
                        }
                    },
                    {
                        query: {maxWidth: 670, minWidth: 550},
                        option: {
                            legend: {
                                orient: 'horizontal',
                                left: 200,
                                itemGap: 5
                            },
                            grid: {
                                left: '10%',
                                top: 80,
                                right: 90,
                                bottom: 100
                            },
                            xAxis: {
                                nameLocation: 'end',
                                nameGap: 10,
                                splitNumber: 5,
                                splitLine: {
                                    show: true
                                }
                            },
                            timeline: {
                                orient: 'horizontal',
                                inverse: false,
                                left: '20%',
                                right: '20%',
                                bottom: 10,
                                height: 40
                            },
                            series: [
                                {name: 'GDP占比', center: ['75%', '30%'], radius: '28%'}
                            ]
                        }
                    },
                    {
                        query: {maxWidth: 550},
                        option: {
                            legend: {
                                orient: 'vertical',
                                left: 'right',
                                itemGap: 5
                            },
                            grid: {
                                left: 55,
                                top: '32%',
                                right: 100,
                                bottom: 50
                            },
                            xAxis: {
                                nameLocation: 'middle',
                                nameGap: 25,
                                splitNumber: 3
                            },
                            timeline: {
                                orient: 'vertical',
                                inverse: true,
                                right: 10,
                                top: 150,
                                bottom: 10,
                                width: 55
                            },
                            series: [
                                {name: 'GDP占比', center: ['45%', '20%'], radius: '28%'}
                            ]
                        }
                    }
                ],
                options: [
                    {
                        title: {text: '2002全国宏观经济指标'},
                        series: [
                            {data: dataMap.dataGDP['2002']},
                            {data: dataMap.dataFinancial['2002']},
                            {data: dataMap.dataEstate['2002']},
                            {data: dataMap.dataPI['2002']},
                            {data: dataMap.dataSI['2002']},
                            {data: dataMap.dataTI['2002']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2002sum']},
                                {name: '第二产业', value: dataMap.dataSI['2002sum']},
                                {name: '第三产业', value: dataMap.dataTI['2002sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2003全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2003']},
                            {data: dataMap.dataFinancial['2003']},
                            {data: dataMap.dataEstate['2003']},
                            {data: dataMap.dataPI['2003']},
                            {data: dataMap.dataSI['2003']},
                            {data: dataMap.dataTI['2003']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2003sum']},
                                {name: '第二产业', value: dataMap.dataSI['2003sum']},
                                {name: '第三产业', value: dataMap.dataTI['2003sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2004全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2004']},
                            {data: dataMap.dataFinancial['2004']},
                            {data: dataMap.dataEstate['2004']},
                            {data: dataMap.dataPI['2004']},
                            {data: dataMap.dataSI['2004']},
                            {data: dataMap.dataTI['2004']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2004sum']},
                                {name: '第二产业', value: dataMap.dataSI['2004sum']},
                                {name: '第三产业', value: dataMap.dataTI['2004sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2005全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2005']},
                            {data: dataMap.dataFinancial['2005']},
                            {data: dataMap.dataEstate['2005']},
                            {data: dataMap.dataPI['2005']},
                            {data: dataMap.dataSI['2005']},
                            {data: dataMap.dataTI['2005']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2005sum']},
                                {name: '第二产业', value: dataMap.dataSI['2005sum']},
                                {name: '第三产业', value: dataMap.dataTI['2005sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2006全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2006']},
                            {data: dataMap.dataFinancial['2006']},
                            {data: dataMap.dataEstate['2006']},
                            {data: dataMap.dataPI['2006']},
                            {data: dataMap.dataSI['2006']},
                            {data: dataMap.dataTI['2006']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2006sum']},
                                {name: '第二产业', value: dataMap.dataSI['2006sum']},
                                {name: '第三产业', value: dataMap.dataTI['2006sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2007全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2007']},
                            {data: dataMap.dataFinancial['2007']},
                            {data: dataMap.dataEstate['2007']},
                            {data: dataMap.dataPI['2007']},
                            {data: dataMap.dataSI['2007']},
                            {data: dataMap.dataTI['2007']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2007sum']},
                                {name: '第二产业', value: dataMap.dataSI['2007sum']},
                                {name: '第三产业', value: dataMap.dataTI['2007sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2008全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2008']},
                            {data: dataMap.dataFinancial['2008']},
                            {data: dataMap.dataEstate['2008']},
                            {data: dataMap.dataPI['2008']},
                            {data: dataMap.dataSI['2008']},
                            {data: dataMap.dataTI['2008']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2008sum']},
                                {name: '第二产业', value: dataMap.dataSI['2008sum']},
                                {name: '第三产业', value: dataMap.dataTI['2008sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2009全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2009']},
                            {data: dataMap.dataFinancial['2009']},
                            {data: dataMap.dataEstate['2009']},
                            {data: dataMap.dataPI['2009']},
                            {data: dataMap.dataSI['2009']},
                            {data: dataMap.dataTI['2009']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2009sum']},
                                {name: '第二产业', value: dataMap.dataSI['2009sum']},
                                {name: '第三产业', value: dataMap.dataTI['2009sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2010全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2010']},
                            {data: dataMap.dataFinancial['2010']},
                            {data: dataMap.dataEstate['2010']},
                            {data: dataMap.dataPI['2010']},
                            {data: dataMap.dataSI['2010']},
                            {data: dataMap.dataTI['2010']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2010sum']},
                                {name: '第二产业', value: dataMap.dataSI['2010sum']},
                                {name: '第三产业', value: dataMap.dataTI['2010sum']}
                            ]}
                        ]
                    },
                    {
                        title : {text: '2011全国宏观经济指标'},
                        series : [
                            {data: dataMap.dataGDP['2011']},
                            {data: dataMap.dataFinancial['2011']},
                            {data: dataMap.dataEstate['2011']},
                            {data: dataMap.dataPI['2011']},
                            {data: dataMap.dataSI['2011']},
                            {data: dataMap.dataTI['2011']},
                            {data: [
                                {name: '第一产业', value: dataMap.dataPI['2011sum']},
                                {name: '第二产业', value: dataMap.dataSI['2011sum']},
                                {name: '第三产业', value: dataMap.dataTI['2011sum']}
                            ]}
                        ]
                    }
                ]
            };

            myChart.setOption(option);

        });
    </script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
  • 图表来源:https://echarts.apache.org/examples/zh/editor.html?c=doc-example/bar-media-timeline (opens new window)
在图表中加入交互组件
数据的视觉映射

← 在图表中加入交互组件 数据的视觉映射→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式