Echarts学习笔记

Echarts 的基本运用(附上官方文档链接)

一、经典案例

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Echart</title>
 9     <!-- 引入 echarts.js -->
10     <script src="../echarts/dist/echarts.js"></script>
11     <!-- <script src="../echarts/echarts.all.js"></script> -->
12 </head>
13 
14 <body>
15 
16     <body>
17         <!-- Echarts 准备一个具备大小的Dom -->
18         <div id="main" style=" 600px; height:400px;"></div>
19     </body>
20 </body>
21 <script>
22     // 基于准备好的dom,初始化echats实例
23     var myChart = echarts.init(document.getElementById('main'));
24 
25     // 指定图标的配置项和数据
26     var option = {
27         title: {
28             text: 'Echarts 入门示例'
29         },
30         tooltip: {},
31         legend: {
32             data: ['销量']
33         },
34         xAxis: {
35             data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
36         },
37         yAxis: {
38 
39         },
40         series: [{
41             name: '销量',
42             type: 'bar',
43             data: [5, 20, 36, 10, 10, 20],
44         }]
45     }
46 
47     // 使用刚指定的配置项和数据显示出来
48     myChart.setOption(option);
49 </script>
50 
51 </html>
View Code

二、复习案例(整合了 n 个知识点,由代码记)

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 
  4 <head>
  5     <meta charset="UTF-8">
  6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8     <title>echarts</title>
  9     <!-- 导入 echart.js -->
 10     <script src="../echarts/dist/echarts.js"></script>
 11     <style>
 12         * {
 13             margin: 0;
 14             padding: 0;
 15         }
 16 
 17         #div1 {
 18             display: flex;
 19             flex-flow: row wrap;
 20             width: 1240px;
 21             height: 840px;
 22             margin: 60px auto;
 23         }
 24 
 25         #div div {
 26             flex: 1;
 27         }
 28     </style>
 29 </head>
 30 
 31 <body>
 32     <div id="div1">
 33         <!-- 创建 一个 宽 600 高 400 的区域 -->
 34         <div id="main" style=" 600px; height: 400px;"></div>
 35         <div id="H1" style=" 600px;height: 400px;"></div>
 36         <!-- 示例 三 -->
 37         <div id="H2" style=" 600px; height: 400px;"></div>
 38         <!-- 示例四 对象到图形的映射 encode -->
 39         <div id="H3" style=" 600px; height: 400px;"></div>
 40     </div>
 41 </body>
 42 <script>
 43     // 基于准备好的 dom,初始化 echarts实例
 44     // 补充:echarts4 开始,新增了两套主题:'light', 'dark'
 45     var myChart = echarts.init(document.getElementById("main"), 'dark');
 46 
 47     // 指定图标的配置项和数据
 48     var option = {
 49         // 全局调色盘,当然也可以进行局部 series里的调色盘
 50         color: ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074',
 51             '#546570', '#c4ccd3'
 52         ],
 53         xAxis: {
 54             type: 'category'
 55         },
 56         yAxis: {},
 57         dataset: {
 58             source: [
 59                 ['Jan', 34, 20, 'XX', 52],
 60                 ['Feb', 28, 14, 'YY', 54],
 61                 ['Mar', 45, 32, 'ZZ', 42],
 62                 ['Apr', 69, 46],
 63                 ['May', 39, 24],
 64                 ['Jun', 43, 23],
 65                 ['Jul', 33, 23],
 66                 ['Aug', 23, 13],
 67                 ['Sep', 33, 20],
 68                 ['Oct', 33, 20],
 69                 ['Nov', 39, 24],
 70                 ['Dec', 22, 15]
 71             ]
 72         },
 73         series: [{
 74                 type: 'pie',
 75                 center: ['65%', 60],
 76                 radius: 35,
 77                 encode: {
 78                     itemName: 3,
 79                     value: 4
 80                 }
 81             }, {
 82                 type: 'line',
 83                 encode: {
 84                     x: 0,
 85                     y: 1
 86                 }
 87             },
 88             {
 89                 type: 'bar',
 90                 encode: {
 91                     x: 0,
 92                     y: 2
 93                 }
 94             }
 95         ]
 96     };
 97     // 将刚指定的数据和配置项显示出来
 98     myChart.setOption(option);
 99 
100     // dom
101     var H1 = document.getElementById("H1");
102     // echarts
103     var mychart1 = echarts.init(H1);
104     // option 直接挂着
105     mychart1.setOption({
106         // 全局背景色
107         backgroundColor: '#2c343c',
108         // 全局文本样式
109         textStyle: {
110             color: 'rgba(255, 255, 255, 0.3)',
111         },
112         // 饼图视觉引导线的颜色
113         labelLine: {
114             lineStyle: {
115                 color: 'rgba(255, 255, 255, 0.3)'
116             }
117         },
118 
119         series: [{
120             name: "访问来源",
121             type: 'pie',
122             radius: '55%',
123             data: [{
124                     value: 235,
125                     name: "视频广告",
126                     // 每个扇形的颜色,可以分别设置data下的数据项实现
127                     itemStyle: {
128                         // color: '#c23531',
129                     }
130                 },
131                 {
132                     value: 274,
133                     name: "联盟广告"
134                 },
135                 {
136                     value: 310,
137                     name: "邮件营销"
138                 },
139                 {
140                     value: 335,
141                     name: "直接访问"
142                 },
143                 {
144                     value: 400,
145                     name: "搜索引擎"
146                 },
147             ],
148             // 南丁格尔图
149             roseType: 'angle',
150             // 阴影配置
151             itemStyle: {
152                 // 阴影的大小
153                 shadowBlur: 200,
154                 // 阴影水平方向上的偏移
155                 shadowOffsetX: 0,
156                 // 阴影垂直方向上的偏移
157                 shadowOffsetY: 0,
158                 // 阴影颜色
159                 shadowColor: 'rgba(0, 0, 0, 0.5)',
160 
161                 // itemStyle 的 emphasis 是鼠标 hover时候的高亮样式
162                 emphasis: {
163                     shadowBlur: 200,
164                     shadowColor: 'rgba(0, 0, 0, 0.5)'
165                 },
166                 // 设置扇形颜色
167                 color: '#c23531',
168             },
169 
170 
171 
172         }],
173 
174         // 由于都为一个颜色,只有明暗度的变化,更快捷的方式是通过 visualMap 组件 将数值的大小映射到 明暗度上
175         visualMap: {
176             // 不显示 visualMap 组件,只用于明暗度的映射
177             show: false,
178             // 映射的最小值为 80
179             min: 80,
180             // 映射的最大值为 600
181             max: 600,
182             inRange: {
183                 // 明暗度的范围是 0 到 1
184                 colorLightness: [0, 1],
185             }
186         },
187     })
188 
189     // 使用 dataset 管理数据
190     var H2 = document.getElementById("H2");
191     // 初始化
192     var mychart2 = echarts.init(H2, 'dark');
193     // option
194     mychart2.setOption({
195         legend: {},
196         tooltip: {},
197         dataset: {
198             source: [
199                 ['product', '2012', '2013', '2014', '2015'],
200                 ['Matcha Latte', 41.1, 30.4, 65.1, 53.3],
201                 ['Milk Tea', 86.5, 92.1, 85.7, 83.1],
202                 ['Cheese Cocoa', 24.1, 67.2, 79.5, 86.4]
203             ]
204         },
205         xAxis: [{
206                 type: 'category',
207                 gridIndex: 0
208             },
209             {
210                 type: 'category',
211                 gridIndex: 1
212             }
213         ],
214         yAxis: [{
215                 gridIndex: 0
216             },
217             {
218                 gridIndex: 1
219             }
220         ],
221         grid: [{
222                 bottom: '55%'
223             },
224             {
225                 top: '55%'
226             }
227         ],
228         series: [
229             // 这几个系列会在第一个直角坐标系中,每个系列对应到 dataset 的每一行。
230             {
231                 type: 'bar',
232                 seriesLayoutBy: 'row'
233             },
234             {
235                 type: 'bar',
236                 seriesLayoutBy: 'row'
237             },
238             {
239                 type: 'bar',
240                 seriesLayoutBy: 'row'
241             },
242             // 这几个系列会在第二个直角坐标系中,每个系列对应到 dataset 的每一列。
243             {
244                 type: 'bar',
245                 xAxisIndex: 1,
246                 yAxisIndex: 1
247             },
248             {
249                 type: 'bar',
250                 xAxisIndex: 1,
251                 yAxisIndex: 1
252             },
253             {
254                 type: 'bar',
255                 xAxisIndex: 1,
256                 yAxisIndex: 1
257             },
258             {
259                 type: 'bar',
260                 xAxisIndex: 1,
261                 yAxisIndex: 1
262             }
263         ]
264     });
265     // dom
266     var H3 = document.getElementById("H3");
267     mychart3 = echarts.init(H3, 'dark');
268     mychart3.setOption({
269         dataset: {
270             source: [
271                 ['score', 'amount', 'product'],
272                 [89.3, 58212, 'Matcha Latte'],
273                 [57.1, 78254, 'Milk Tea'],
274                 [74.4, 41032, 'Cheese Cocoa'],
275                 [50.1, 12755, 'Cheese Brownie'],
276                 [89.7, 20145, 'Matcha Cocoa'],
277                 [68.1, 79146, 'Tea'],
278                 [19.6, 91852, 'Orange Juice'],
279                 [10.6, 101852, 'Lemon Juice'],
280                 [32.7, 20112, 'Walnut Brownie']
281             ]
282         },
283         xAxis: {},
284         yAxis: {
285             type: 'category'
286         },
287         series: [{
288             type: 'bar',
289             encode: {
290                 // 将 "amount" 列映射到 X 轴。
291                 x: 'amount',
292                 // 将 "product" 列映射到 Y 轴。
293                 y: 'product'
294             }
295         }]
296     })
297 </script>
298 
299 </html>
View Code

LovelyCat

原文地址:https://www.cnblogs.com/xmdykf/p/12266442.html