ECharts大屏可视化【词云,堆积柱状图,折线图,南丁格尔玫瑰图】

一.简介

  参考ECharts快速入门:https://www.cnblogs.com/yszd/p/11166048.html

二.代码实现

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4    <meta charset="UTF-8">
  5    <title>ECharts入门</title>
  6 </head>
  7 <body>
  8    <!-- 为ECharts准备一个具备大小(宽高)的DOM容器-->
  9     <div style=‘width:100%;height:100%‘>
 10         <div id=‘back‘ style=‘width:60%;height:400px;float:left;‘></div>
 11            <div id=‘main‘ style=‘width:40%;height:400px;float:left;‘></div>
 12            <div id=‘left‘ style=‘width:60%;height:400px;float:left;‘></div>
 13            <div id=‘right‘ style=‘width:40%;height:400px;float:left;‘></div>
 14     </div>
 15
 16    <!-- 引入ECharts文件 -->
 17    <script src=‘js/echarts-all.js‘></script>
 18    <script src=‘js/echarts-wordcloud.min.js‘></script>
 19    <script>
 20        function createRandomItemStyle(){
 21              return {
 22                 normal: {
 23                      color: ‘rgb(‘ + [
 24                         Math.round(Math.random() * 160),
 25                         Math.round(Math.random() * 160),
 26                         Math.round(Math.random() * 160)
 27                     ].join(‘,‘) + ‘)‘
 28                 }
 29             };
 30         }
 31         //基于准备好的DOM,初始化echarts实例
 32         var myChart = echarts.init(document.getElementById(‘main‘));
 33         var myChart2 = echarts.init(document.getElementById(‘back‘));
 34         var myChart3 = echarts.init(document.getElementById(‘left‘));
 35         var myChart4 = echarts.init(document.getElementById(‘right‘));
 36
 37         /* var loadingTicket = myChart.showLoading({
 38             text: ‘loading‘,
 39             color: ‘#4cbbff‘,
 40             textColor: ‘#4cbbff‘,
 41             maskColor: ‘rgba(0, 0, 0, 0.9)‘,
 42         });  */
 43
 44           //指定图表的配置项和数据
 45         option = {
 46             title: {
 47                 text: ‘文本分析算法词云‘
 48             },
 49             tooltip:{
 50                 trigger:‘axis‘
 51                 },
 52             toolbox: {
 53                 show: true,
 54                 feature:{
 55                     mark:{show:true},
 56                     dataView:{show:true,readOnly:false},
 57                     magicType:{show:true,type:[‘line‘,‘bar‘]},
 58                     restore:{show:true},
 59                     saveAsImage:{show:true}
 60                 }
 61             },
 62             series: [{
 63                 name: ‘词云‘,
 64                 type: ‘wordCloud‘,
 65                 size: [‘80%‘, ‘80%‘],
 66                 textRotation : [0, 45, 90, -45],
 67                 textPadding: 0,
 68                 autoSize: {
 69                     enable: true,
 70                     minSize: 14
 71                 },
 72                 data:[
 73                         {
 74                               name: "质量",
 75                               value: 6564,
 76                               itemStyle: createRandomItemStyle()
 77                         },
 78                         {
 79                             name: "稽查",
 80                             value: 4181,
 81                             itemStyle: createRandomItemStyle()
 82                         },
 83                         {
 84                             name: "流程",
 85                             value: 3386,
 86                             itemStyle: createRandomItemStyle()
 87                         },
 88                         {
 89                             name: "核实",
 90                             value: 2655,
 91                             itemStyle: createRandomItemStyle()
 92                         },
 93                         {
 94                             name: "现场",
 95                             value: 2467,
 96                             itemStyle: createRandomItemStyle()
 97                         },
 98                         {
 99                             name: "管理",
100                             value: 2244,
101                             itemStyle: createRandomItemStyle()
102                         },
103                         {
104                             name: "用户",
105                             value: 1898,
106                             itemStyle: createRandomItemStyle()
107                         },
108                         {
109                             name: "系统",
110                             value: 1484,
111                             itemStyle: createRandomItemStyle()
112                         },
113                         {
114                             name: "整改",
115                             value: 1112,
116                             itemStyle: createRandomItemStyle()
117                         },
118                         {
119                             name: "电力系统",
120                             value: 965,
121                             itemStyle: createRandomItemStyle()
122                         },
123                         {
124                             name: "河南供电局",
125                             value: 847,
126                             itemStyle: createRandomItemStyle()
127                         },
128                         {
129                             name: "交变电高压线路",
130                             value: 582,
131                             itemStyle: createRandomItemStyle()
132                         },
133                         {
134                             name: "Lewis Hamilton",
135                             value: 555,
136                             itemStyle: createRandomItemStyle()
137                         },
138                         {
139                             name: "KXAN",
140                             value: 550,
141                             itemStyle: createRandomItemStyle()
142                         },
143                         {
144                             name: "Mary Ellen Mark",
145                             value: 462,
146                             itemStyle: createRandomItemStyle()
147                         },
148                         {
149                             name: "Farrah Abraham",
150                             value: 366,
151                             itemStyle: createRandomItemStyle()
152                         },
153                         {
154                             name: "Rita Ora",
155                             value: 360,
156                             itemStyle: createRandomItemStyle()
157                         },
158                         {
159                             name: "Serena Williams",
160                             value: 282,
161                             itemStyle: createRandomItemStyle()
162                         },
163                         {
164                             name: "NCAA baseball tournament",
165                             value: 273,
166                             itemStyle: createRandomItemStyle()
167                         },
168                         {
169                             name: "Point Break",
170                             value: 265,
171                             itemStyle: createRandomItemStyle()
172                         }
173                     ]
174                 }]
175             };
176
177     option2 = {
178             title: {
179                 text: ‘热词分布‘
180             },
181             tooltip : {
182                 trigger: ‘axis‘,
183                 axisPointer : {
184                     type: ‘shadow‘
185                 }
186             },
187             legend: {
188                 data:[‘稽查工单‘,‘隐患问题库‘,‘典型案例库‘],
189                 axisLabel:{
190                     show:true,
191                     textStyle:{
192                         fontSize:16
193                     }
194                 }
195             },
196             toolbox: {
197                 show : true,
198                 orient : ‘vertical‘,
199                 y : ‘center‘,
200                 feature : {
201                     mark : {show: true},
202                     magicType : {show: true, type: [‘line‘, ‘bar‘, ‘stack‘, ‘tiled‘]},
203                     restore : {show: true},
204                     saveAsImage : {show: true}
205                 }
206             },
207             calculable : true,
208             xAxis : [
209                 {
210                     type : ‘category‘,
211                     data : ["郑州","平顶山","商丘","洛阳","信阳","安阳","驻马店","新乡","开封","许昌","南阳","焦作","漯河","濮阳","周口","鹤壁","三门峡","济源"],
212                     axisLabel:{
213                         show:true,
214                         textStyle:{
215                             fontSize:16
216                         }
217                     }
218                 }
219             ],
220             yAxis : [
221                 {
222                     type : ‘value‘,
223                     splitArea : {show : true},
224                     axisLabel:{
225                         show:true,
226                         textStyle:{
227                             fontSize:16
228                         }
229                     }
230                 }
231             ],
232             grid: {
233                 x2:40
234             },
235             series : [
236                 {
237                     name:‘稽查工单‘,
238                     type:‘bar‘,
239                     stack: ‘总量‘
240                 },
241                 {
242                     name:‘隐患问题库‘,
243                     type:‘bar‘,
244                     stack: ‘总量‘
245                 },
246                 {
247                     name:‘典型案例库‘,
248                     type:‘bar‘,
249                     stack: ‘总量‘,
250                     itemStyle:{
251                         normal:{
252                             label:{
253                                 show:true,
254                                 position:‘top‘,
255                                 formatter:‘{c}‘,
256                                 fontSize:16
257                             }
258                         }
259                     }
260                 }
261             ]
262         };
263
264     option3 = {
265             title : {
266                 text: ‘一周内热词变化‘,
267                 subtext: ‘测试数据‘
268             },
269             tooltip : {
270                 trigger: ‘axis‘
271             },
272             legend: {
273                 data:[‘最高热词‘,‘最低热词‘]
274             },
275             toolbox: {
276                 show : true,
277                 feature : {
278                     mark : {show: true},
279                     dataView : {show: true, readOnly: false},
280                     magicType : {show: true, type: [‘line‘, ‘bar‘]},
281                     restore : {show: true},
282                     saveAsImage : {show: true}
283                 }
284             },
285             calculable : true,
286             xAxis : [
287                 {
288                     type : ‘category‘,
289                     boundaryGap : false,
290                     data : [‘周一‘,‘周二‘,‘周三‘,‘周四‘,‘周五‘,‘周六‘,‘周日‘]
291                 }
292             ],
293             yAxis : [
294                 {
295                     type : ‘value‘,
296                     axisLabel : {
297                         formatter: ‘{value}‘
298                     }
299                 }
300             ],
301             series : [
302                 {
303                     name:‘最高热词‘,
304                     type:‘line‘,
305                     data:[114, 131, 125, 213, 412, 143, 310],
306                     markPoint : {
307                         data : [
308                             {type : ‘max‘, name: ‘最大值‘},
309                             {type : ‘min‘, name: ‘最小值‘}
310                         ]
311                     },
312                     markLine : {
313                         data : [
314                             {type : ‘average‘, name: ‘平均值‘}
315                         ]
316                     }
317                 },
318                 {
319                     name:‘最低热词‘,
320                     type:‘line‘,
321                     data:[114, 131, 125, 213, 412, 143, 310],
322                     markPoint : {
323                         data : [
324                             {name : ‘周最低‘, value : 114, xAxis: 0, yAxis: 1.5}
325                         ]
326                     },
327                     markLine : {
328                         data : [
329                             {type : ‘average‘, name : ‘平均值‘}
330                         ]
331                     }
332                 }
333             ]
334         };
335
336     option4 = {
337             title : {
338                 text: ‘热词层级‘,
339                 subtext: ‘测试数据‘
340             },
341             tooltip : {
342                 trigger: ‘item‘,
343                 formatter: "{a} <br/>{b} : {c} ({d}%)"
344             },
345             legend: {
346                 orient : ‘vertical‘,
347                 x : ‘0px‘,
348                 y : ‘60px‘,
349                 data:[‘直达‘,‘邮件营销‘,‘联盟广告‘,‘视频广告‘,‘百度‘,‘谷歌‘,‘必应‘,‘其他‘]
350             },
351             toolbox: {
352                 show : true,
353                 feature : {
354                     mark : {show: true},
355                     dataView : {show: true, readOnly: false},
356                     magicType : {
357                         show: true,
358                         type: [‘pie‘, ‘funnel‘]
359                     },
360                     restore : {show: true},
361                     saveAsImage : {show: true}
362                 }
363             },
364             calculable : false,
365             series : [
366                 {
367                     name:‘访问来源‘,
368                     type:‘pie‘,
369                     selectedMode: ‘single‘,
370                     radius : [0, 70],
371
372                     // for funnel
373                     x: ‘20%‘,
374                     width: ‘40%‘,
375                     funnelAlign: ‘right‘,
376                     max: 1548,
377
378                     itemStyle : {
379                         normal : {
380                             label : {
381                                 position : ‘inner‘
382                             },
383                             labelLine : {
384                                 show : false
385                             }
386                         }
387                     },
388                     data:[
389                         {value:335, name:‘典型案例库‘},
390                         {value:679, name:‘隐患问题库‘},
391                         {value:1548, name:‘稽查工单‘, selected:true}
392                     ]
393                 },
394                 {
395                     name:‘访问来源‘,
396                     type:‘pie‘,
397                     radius : [100, 140],
398
399                     // for funnel
400                     x: ‘60%‘,
401                     width: ‘35%‘,
402                     funnelAlign: ‘left‘,
403                     max: 1048,
404
405                     data:[
406                         {value:335, name:‘直达‘},
407                         {value:310, name:‘邮件营销‘},
408                         {value:234, name:‘联盟广告‘},
409                         {value:135, name:‘视频广告‘},
410                         {value:1048, name:‘百度‘},
411                         {value:251, name:‘谷歌‘},
412                         {value:147, name:‘必应‘},
413                         {value:102, name:‘其他‘}
414                     ]
415                 }
416             ]
417         };
418
419         var series = option["series"];
420         var series2 = option2["series"];
421         var loc = 0;
422         var fun = function (params) {
423                 var data = 0;
424                 for(var i=0,len = series2.length;i<len;i++){
425                     data += series2[i].data[loc];
426                 }
427                 loc += 1;
428                 return data
429             }
430         //设置每种类别的值
431         series2[0][‘data‘] = [320, 332, 301, 334, 390, 330, 320, 342, 223, 123, 301, 334, 390, 330, 320, 342, 223, 123]
432         series2[1][‘data‘] = [320, 332, 301, 334, 390, 330, 320, 342, 223, 123, 301, 334, 390, 330, 320, 342, 223, 123]
433         series2[2][‘data‘] = [320, 332, 301, 334, 390, 330, 320, 342, 223, 123, 301, 334, 390, 330, 320, 342, 223, 123]
434
435         //加载页面时候替换最后一个series的formatter
436         series2[series2.length-1]["itemStyle"]["normal"]["label"]["formatter"] = fun
437
438         //使用刚指定的配置项和数据显示图表
439         //clearTimeout(loadingTicket);
440         loadingTicket = setTimeout(function (){
441             //myChart.hideLoading();
442             myChart.setOption(option);
443
444             //myChart2.hideLoading();
445             myChart2.setOption(option2);
446
447             myChart3.setOption(option3);
448             myChart4.setOption(option4);
449         },300);
450
451         myChart.connect(myChart2);
452         myChart2.connect(myChart);
453
454         setTimeout(function (){
455             window.onresize = function () {
456                 myChart.resize();
457                 myChart2.resize();
458             }
459         },200)
460
461         myChart.on(‘click‘, function (params) {
462             //获取随机数
463             var jc = Math.random();
464             var yh = (1 - jc) * Math.random();
465             var dx = (1 - jc) - yh;
466
467             series2[0][‘data‘] = [parseInt(params.value * jc), 332, 301, parseInt(params.value * dx), 390, 330, 320, 342, 223, 123, 301, 334, 390, 330, 320, 342, 223, 123]
468             series2[1][‘data‘] = [parseInt(params.value * yh), 332, 301, 334, 390, 330, parseInt(params.value * jc), 342, 223, 123, 301, 334, 390, 330, 320, 342, 223, 123]
469             series2[2][‘data‘] = [parseInt(params.value * dx), 332, 301, 334, 390, 330, 320, 342, 223, 123, 301, 334, 390, 330, 320, parseInt(params.value * jc), 223, 123]
470
471             var loc = 0;
472             var fun = function (params) {
473                     var data = 0;
474                     for(var i=0,len = series2.length;i<len;i++){
475                         data += series2[i].data[loc];// - parseInt(Math.random() * 100)
476                     }
477                     loc += 1;
478                     return data
479                 }
480
481             //加载页面时候替换最后一个series的formatter
482             series2[series2.length-1]["itemStyle"]["normal"]["label"]["formatter"] = fun
483             myChart2.setOption(option2);
484         });
485
486         myChart2.on(‘click‘, function (params){
487             series[series.length-1][‘data‘][0][‘name‘] = ‘资产‘
488             series[series.length-1][‘data‘][0][‘value‘] = parseInt(Math.random() * 10000)
489             myChart.setOption(option);
490         })
491    </script>
492 </body>
493 </html>

三.效果

原文地址:https://www.cnblogs.com/yszd/p/11196437.html

时间: 2024-10-14 15:22:22

ECharts大屏可视化【词云,堆积柱状图,折线图,南丁格尔玫瑰图】的相关文章

ECharts学习(2)--饼状图之南丁格尔图

1.上一篇中讲了如何绘制一个简单的柱状图,这次要画的是饼图,饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目.因为不在直角坐标系上,所以也不需要xAxis,yAxis. 2.itemStyle都会有normal和emphasis两个选项,normal选项是正常展示下的样式,emphasis是鼠标 hover 时候的高亮样式.也可以把阴影的效果设置在hover的时候. 3.背景色是全局的,所以直接在 option 下设置backgr

Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&amp;&amp;两个echarts详细教程(柱状图,南丁格尔图)

Webstorm+Webpack+echarts   ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表. ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化.   1.npm

两个大屏可视化案例的布局与实现

近期分别使用了 React 和 Vue 完成了两个大屏可视化案例,经历了设计师和产品经理的各种 “指指点点” ,也算是对可视化大屏项目有了一点点小的经验,对于两个技术栈写组件也有一点小心得,趁着周末总结一下. 大屏效果图1 大屏效果图2 可视化大屏 无论是在科幻电影还是在真实世界里,可视化大屏都是非常常见的一种表现手法.之前在昆明公安局出差,也亲眼看到了 湄公河惨案 的真实指挥中心和他的大屏,屏幕的宽度大约有两层楼高. 可视化大屏的特性 可视化大屏, 归根到底还是运用的可视化技术 ,只不过展现的

Echarts个性化图表的样式--绘制南丁格尔图

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>个性化图表的样式--绘制南丁格尔图</title> </head> <body> <div id="main" style="width:800px;height:600px;">&

《大屏可视化数据》该怎么设计?

前言:数据可视化是什么?可视化数据有哪些主要特征?为什么要使用大屏展示可视化数据?数据可视化是综合运用计算机图形学.图像.人机交互等,将采集.清洗.转换.处理过的符合标准和规范的数据映射为可识别的图形.图像.动画甚至视频,并允许用户与数据可视化进行交互和分析.使用数据可视化可以丰富内容,引人注意,调动人的情绪.引发人的共鸣,传递文化和价值.可视化数据的最主要目三个特征:新颖而有趣.充实而高效.美感且悦.以大屏作为可视化数据的主要载体,其原因在于面积大.可展示信息多.便于关键信息的共享讨论及决策,

echarts大屏展示数据

1.准备工具 1)echarts 去官网下载镜像 https://www.echartsjs.com/zh/download.html 在终端进行 pip 安装 pip install pyecharts-1.7.1-py3-none-any.whl 安装完成之后,我们测试一下, from pyecharts import Bar 报错了,但是并不是因为我们的安装有问题,而是版本不同的问题造成的 from pyecharts.charts import Bar 这样倒入包就没有问题了 用小段代码

2019主流的数据可视化大屏工具有哪些

数据可视化大屏已经是公认的最直观,最有效的信息传递方式,以前用Echarts等第三方组件做大屏开发的,会发现:尽管它们提供了许多的图表元件和JS代码,但是由于每个用户的需求都不一样,大屏开发仍然需要改很多代码,耗费不少时间.如今,更加主流的,是一些实用又好看的数据可视化大屏工具,本文就来详细介绍. 1.FineBI 目前是国内市场占有率第一的自助式BI工具,也是一款成熟的数据分析产品.内置丰富图表,不需要代码调用,可直接拖拽生成.可用于业务数据的快速分析,制作dashboard,也可构建可视化大

如何做大屏数据可视化设计?

文章结构及思维导图: 一.基础概念 1. 什么是数据可视化 把相对复杂.抽象的数据通过可视的方式以人们更易理解的形式展示出来的一系列手段叫做数据可视化,数据可视化是为了更形象地表达数据内在的信息和规律,促进数据信息的传播和应用. 在当前新技术支持下,数据可视化除了"可视",还可有可交流.可互动的特点.数据可视化的本质是数据空间到图形空间的映射,是抽象数据的具象表达. 数据可视化作品<launchit> 作者:Shane Mielke 作者写了本书,地图上显示了世界各地读者的

大屏设计系列之五——大屏设计语言分析

如果您想订阅本博客内容,每天自动发到您的邮箱中,请点这里 作者:蓝蓝 蓝蓝设计经常会接到大屏设计的项目,比如中国移动互联网监控大屏可视化设计及开发.太极集团承接的中央台应急指挥中心大屏可视化设计.交大思源承接的北京地铁轨道批挥中心大屏可视化设计.数码视讯展厅大屏可视化设计,在积累了一定经验的同时,也在不断的学习和丰富关于大屏设计的特点及数据可视化的表达方式. 数据可视化过滤了非常多的冗余信息,浓缩了最重要的信息,它的魅力就在于将枯燥的数据组织在一起,把最需要的那些编辑成一个故事.目前大数据那么流