ECharts大屏可视化词云,堆积柱状图,折线图,南丁格尔玫瑰图
Posted yszd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
三.效果
以上是关于ECharts大屏可视化词云,堆积柱状图,折线图,南丁格尔玫瑰图的主要内容,如果未能解决你的问题,请参考以下文章