water.js 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276
  1. // 柱状图1模块
  2. (function() {
  3. // 实例化对象
  4. var myChart = echarts.init(document.querySelector(".bar-3d .chart"));
  5. // 生成扇形的曲面参数方程,用于 series-surface.parametricEquation
  6. function getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, height) {
  7. // 计算
  8. let midRatio = (startRatio + endRatio) / 2;
  9. let startRadian = startRatio * Math.PI * 2;
  10. let endRadian = endRatio * Math.PI * 2;
  11. let midRadian = midRatio * Math.PI * 2;
  12. // 如果只有一个扇形,则不实现选中效果。
  13. if (startRatio === 0 && endRatio === 1) {
  14. isSelected = false;
  15. }
  16. // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
  17. k = typeof k !== 'undefined' ? k : 1 / 3;
  18. // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
  19. let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
  20. let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
  21. // 计算高亮效果的放大比例(未高亮,则比例为 1)
  22. let hoverRate = isHovered ? 1.05 : 1;
  23. // 返回曲面参数方程
  24. return {
  25. u: {
  26. min: -Math.PI,
  27. max: Math.PI * 3,
  28. step: Math.PI / 32
  29. },
  30. v: {
  31. min: 0,
  32. max: Math.PI * 2,
  33. step: Math.PI / 20
  34. },
  35. x: function(u, v) {
  36. if (u < startRadian) {
  37. return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
  38. }
  39. if (u > endRadian) {
  40. return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
  41. }
  42. return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
  43. },
  44. y: function(u, v) {
  45. if (u < startRadian) {
  46. return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
  47. }
  48. if (u > endRadian) {
  49. return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
  50. }
  51. return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
  52. },
  53. z: function(u, v) {
  54. if (u < -Math.PI * 0.5) {
  55. return Math.sin(u);
  56. }
  57. if (u > Math.PI * 2.5) {
  58. return Math.sin(u);
  59. }
  60. return Math.sin(v) > 0 ? 1 : -1;
  61. }
  62. };
  63. }
  64. // 生成模拟 3D 饼图的配置项
  65. function getPie3D(pieData, internalDiameterRatio) {
  66. let series = [];
  67. let sumValue = 0;
  68. let startValue = 0;
  69. let endValue = 0;
  70. let legendData = [];
  71. let k = typeof internalDiameterRatio !== 'undefined' ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio) : 1 / 3;
  72. // 为每一个饼图数据,生成一个 series-surface 配置
  73. for (let i = 0; i < pieData.length; i++) {
  74. sumValue += pieData[i].value;
  75. let seriesItem = {
  76. name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
  77. type: 'surface',
  78. parametric: true,
  79. wireframe: {
  80. show: false
  81. },
  82. pieData: pieData[i],
  83. pieStatus: {
  84. selected: false,
  85. hovered: false,
  86. k: k
  87. }
  88. };
  89. if (typeof pieData[i].itemStyle != 'undefined') {
  90. let itemStyle = {};
  91. typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
  92. typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
  93. seriesItem.itemStyle = itemStyle;
  94. }
  95. series.push(seriesItem);
  96. }
  97. // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
  98. // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
  99. for (let i = 0; i < series.length; i++) {
  100. endValue = startValue + series[i].pieData.value;
  101. console.log(series[i]);
  102. series[i].pieData.startRatio = startValue / sumValue;
  103. series[i].pieData.endRatio = endValue / sumValue;
  104. series[i].parametricEquation = getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio, false, false, k, series[i].pieData.value);
  105. startValue = endValue;
  106. legendData.push(series[i].name);
  107. }
  108. // 准备待返回的配置项,把准备好的 legendData、series 传入。
  109. let option = {
  110. // globe:{
  111. // baseTexture: "../img/world.jpg",
  112. // heightTexture: "../img/world.jpg",
  113. // displacementScale: 0.04,
  114. // environment: "../img/starfield.jpg",
  115. // shading:"realistic",
  116. // realisticMaterial: {
  117. // roughness: 0.9
  118. // },
  119. // postEffect: {
  120. // enable: true
  121. // },
  122. // light: {
  123. // main: {
  124. // intensity: 5,
  125. // shadow: true
  126. // },
  127. // ambientCubemap: {
  128. // texture: "../img/pisa.hdr",
  129. // diffuseIntensity: 0.2
  130. // }
  131. // }
  132. // },
  133. tooltip: {
  134. formatter: params => {
  135. if (params.seriesName !== 'mouseoutSeries') {
  136. return `${params.seriesName}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>${option.series[params.seriesIndex].pieData.value}%`;
  137. }
  138. }
  139. },
  140. // legend: {
  141. // data: legendData,
  142. // textStyle: {
  143. // color: '#fff',
  144. // fontSize: 14
  145. // }
  146. // },
  147. xAxis3D: {
  148. min: -1,
  149. max: 1
  150. },
  151. yAxis3D: {
  152. min: -1,
  153. max: 1
  154. },
  155. zAxis3D: {
  156. min: -1,
  157. max: 1
  158. },
  159. grid3D: {
  160. show: false,
  161. boxHeight: 40,
  162. top: '-10%',
  163. // bottom: '80%',
  164. // environment: '../images/3d-bg.png', //aa背景色
  165. viewControl: {
  166. distance: 170, //aa距离
  167. alpha: 21, //aa角度
  168. beta: 10, //aa角度
  169. zoomSensitivity: false //是否开启缩放和平移
  170. },
  171. },
  172. series: series
  173. };
  174. return option;
  175. }
  176. // 传入数据生成 option
  177. var option = getPie3D([{
  178. name: '已处理率',
  179. value: 80,
  180. itemStyle: {
  181. opacity: 0.5,
  182. color: 'rgba(0,127,244,.8)',
  183. }
  184. }, {
  185. name: '未处理率',
  186. value: 20,
  187. itemStyle: {
  188. opacity: 0.5,
  189. color: 'rgba(209,126,23,.8)',
  190. }
  191. }
  192. ], 2);
  193. // 把配置给实例对象
  194. myChart.setOption(option);
  195. window.addEventListener("resize", function() {
  196. myChart.resize();
  197. });
  198. })();
  199. // 折线图定制 (数据离散率挖掘)
  200. (function() {
  201. var sortData = [{
  202. data: [
  203. [30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 200, 180, 79, 82, 64, 43, 60, 19, 82, 64, 43, 60, 19, 34],
  204. [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38, 24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, ],
  205. [400, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 79, 82, 64, 4]
  206. ]
  207. }];
  208. var xData = function() {
  209. var data = [];
  210. for (var i = 1; i < 31; i++) {
  211. data.push(i);
  212. }
  213. return data;
  214. }();
  215. // 1. 实例化对象
  216. var myChart = echarts.init(document.querySelector(".divergence .chart"));
  217. // 2.指定配置
  218. var option = {
  219. color: [{
  220. colorStops: [{
  221. offset: 0,
  222. color: '#F9860C' // 0% 处的颜色
  223. }, {
  224. offset: 1,
  225. color: '#fff' // 100% 处的颜色
  226. }],
  227. },
  228. {
  229. colorStops: [{
  230. offset: 0,
  231. color: '#07E1F1' // 0% 处的颜色
  232. }, {
  233. offset: 1,
  234. color: '#0456CB' // 100% 处的颜色
  235. }],
  236. },
  237. {
  238. colorStops: [{
  239. offset: 0,
  240. color: '#11F90C' // 0% 处的颜色
  241. }, {
  242. offset: 1,
  243. color: '#3FC713' // 100% 处的颜色
  244. }],
  245. }
  246. ],
  247. // color: ["#FF9C00", "#0096FF", "#11F90C"], // 通过这个color修改两条线的颜色
  248. tooltip: {
  249. trigger: "axis",
  250. // backgroundColor: '#12DFE0',
  251. textStyle: {
  252. align: 'left' //图例左对齐
  253. },
  254. },
  255. legend: {
  256. // 如果series 对象有name 值,则 legend可以不用写data
  257. itemGap: 20,
  258. itemHeight: 2,
  259. itemWidth: 15,
  260. icon: 'rect',
  261. textStyle: {
  262. color: "#fff"
  263. },
  264. top: "bottom",
  265. },
  266. grid: {
  267. top: "0%",
  268. left: "1%",
  269. right: "1%",
  270. bottom: "10%",
  271. show: true, // 显示边框
  272. borderWidth: '0', //去除边框
  273. containLabel: true // 包含刻度文字在内
  274. },
  275. xAxis: {
  276. type: "category",
  277. boundaryGap: false,
  278. data: xData,
  279. axisTick: {
  280. show: false // 去除刻度线
  281. },
  282. axisLabel: {
  283. color: "#AADDFF" // 文本颜色
  284. },
  285. axisLine: {
  286. lineStyle: {
  287. color: 'rgba(255,255,255,.3)'
  288. }
  289. },
  290. splitNumber: 8,
  291. splitLine: {
  292. show: false
  293. },
  294. splitArea: {
  295. show: true,
  296. areaStyle: {
  297. color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
  298. }
  299. }
  300. },
  301. yAxis: {
  302. type: "value",
  303. axisTick: {
  304. show: false // 去除刻度线
  305. },
  306. axisLabel: {
  307. show: false // 去除文本
  308. },
  309. axisLine: {
  310. show: false // 去除轴线
  311. },
  312. splitLine: {
  313. lineStyle: {
  314. color: "#012f4a" // 分割线颜色
  315. }
  316. }
  317. },
  318. series: [{
  319. symbol: "none",
  320. name: "方差",
  321. type: "line",
  322. data: sortData[0].data[0]
  323. },
  324. {
  325. symbol: "none",
  326. name: "标准差",
  327. type: "line",
  328. data: sortData[0].data[1]
  329. }, {
  330. symbol: "none",
  331. name: "平均值",
  332. type: "line",
  333. data: sortData[0].data[2]
  334. }
  335. ]
  336. };
  337. myChart.setOption(option);
  338. window.addEventListener("resize", function() {
  339. myChart.resize();
  340. });
  341. })();
  342. // 渗漏隐藏排查
  343. (function() {
  344. // 基于准备好的dom,初始化echarts实例
  345. var myChart = echarts.init(document.querySelector(".bar.hiddenCheck .chart"));
  346. var xData = ['三到四层', '四到五层', '七到八层', '八到九层', '九到十层', '三到四层', '四到五层', '七到八层', '八到九层', '九到十层', '三到四层', '四到五层', '七到八层', '八到九层'];
  347. var option = {
  348. backgroundColor: 'transparent',
  349. color: ['rgba(0,150,255,.5)', 'rgba(255,156,0,.5)'],
  350. tooltip: {
  351. //提示框组件
  352. trigger: 'axis',
  353. formatter: function(params) {
  354. var relVal = params[0].name;
  355. for (var i = 0, l = params.length; i < l; i++) {
  356. relVal += '<br/>';
  357. relVal += '<span style="display:inline-block;margin-right:5px;border-radius:2px;width:9px;height:9px;background-color:' + params[i].color + '"></span>';
  358. relVal += params[i].seriesName + ' : ' + params[i].value;
  359. }
  360. return relVal;
  361. },
  362. axisPointer: {
  363. type: 'shadow',
  364. },
  365. textStyle: {
  366. fontStyle: 'normal',
  367. fontFamily: '微软雅黑',
  368. fontSize: 12,
  369. },
  370. },
  371. grid: {
  372. left: '0',
  373. right: '0',
  374. bottom: '40',
  375. top: '0',
  376. containLabel: true,
  377. },
  378. legend: {
  379. // 如果series 对象有name 值,则 legend可以不用写data
  380. itemGap: 20,
  381. itemHeight: 2,
  382. itemWidth: 15,
  383. icon: 'rect',
  384. textStyle: {
  385. color: "#fff"
  386. },
  387. top: "bottom",
  388. },
  389. //添加横线滚动条
  390. dataZoom: {
  391. start: 0, //默认为0
  392. end: 100 - 1500 / 18, //默认为100
  393. type: 'slider',
  394. show: xData.length > 4 ? true : false,
  395. xAxisIndex: [0],
  396. handleSize: 0, //滑动条的 左右2个滑动条的大小
  397. height: 4, //组件高度
  398. left: 20, //左边的距离
  399. right: 20, //右边的距离
  400. bottom: 30, //右边的距离
  401. handleColor: '#CBBCDB', //h滑动图标的颜色
  402. handleStyle: {
  403. borderColor: "#CBBCDB",
  404. borderWidth: "1",
  405. shadowBlur: 2,
  406. background: "#CBBCDB",
  407. shadowColor: "#CBBCDB",
  408. },
  409. textStyle: {
  410. color: "#fff"
  411. },
  412. backgroundColor: 'rgba(37, 46, 100, 0.45)', //两边未选中的滑动条区域的颜色
  413. showDataShadow: false, //是否显示数据阴影 默认auto
  414. // showDetail: false, //即拖拽时候是否显示详细数值信息 默认true
  415. filterMode: 'filter',
  416. },
  417. xAxis: [{
  418. type: 'category',
  419. // boundaryGap: true,//坐标轴两边留白
  420. data: xData,
  421. axisLabel: {
  422. interval: 0,
  423. // rotate: 340,
  424. // formatter: function(val) {
  425. // return val.split("").join("\n");
  426. // }, //横轴信息文字竖直显示
  427. textStyle: {
  428. color: '#AADDFF',
  429. fontStyle: 'normal',
  430. fontFamily: '微软雅黑',
  431. fontSize: 12,
  432. },
  433. },
  434. axisTick: {
  435. //坐标轴刻度相关设置。
  436. show: false,
  437. },
  438. axisLine: {
  439. //坐标轴轴线相关设置
  440. },
  441. splitLine: {
  442. //坐标轴在 grid 区域中的分隔线。
  443. show: false,
  444. },
  445. }, ],
  446. yAxis: [{
  447. type: 'value',
  448. axisLabel: false,
  449. axisLine: {
  450. show: false,
  451. },
  452. axisTick: {
  453. show: false,
  454. },
  455. splitLine: {
  456. show: true,
  457. lineStyle: {
  458. color: ['#204C6F'],
  459. opacity: 0.3,
  460. },
  461. },
  462. boundaryGap: ['0', '10%'],
  463. }],
  464. series: [{
  465. name: '正常',
  466. type: 'bar',
  467. data: [400, 180, 40, 30, 31, 400, 180, 40, 30, 31, 400, 180, 40, 30, 31, 400, 180, 40, 30, 31, 400, 180, 40, 30, 31],
  468. barMaxWidth: '11',
  469. itemStyle: {
  470. borderColor: "#0096FF",
  471. },
  472. barGap: '50%',
  473. },
  474. {
  475. name: '实际',
  476. type: 'bar',
  477. data: [500, 200, 50, 60, 36, 500, 200, 50, 60, 36, 500, 200, 50, 60, 36, 500, 200, 50, 60, 36, 500, 200, 50, 60, 36],
  478. barMaxWidth: '11',
  479. itemStyle: {
  480. borderColor: "#FF9C00",
  481. },
  482. },
  483. ],
  484. };
  485. // 使用刚指定的配置项和数据显示图表。
  486. myChart.setOption(option);
  487. window.addEventListener("resize", function() {
  488. myChart.resize();
  489. });
  490. })();
  491. // 折线图定制 (跨设备数据关联)
  492. (function() {
  493. var sortData = [{
  494. sortName: "喷淋末端与水泵启停关联",
  495. data: [
  496. // 两个数组是因为有两条线
  497. [24, 52, 60, 70, 80, 30, 95, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 43, 60, 19, 34],
  498. [40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 70, 80, 75, 70, 65, 60, 55, 50, 45, 40, ]
  499. ]
  500. },
  501. {
  502. sortName: "试验消火栓与屋顶水箱液位关联",
  503. data: [
  504. // 两个数组是因为有两条线
  505. [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38, 24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, ],
  506. [143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34, 40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, ]
  507. ]
  508. }
  509. ];
  510. var xData = function() {
  511. var data = [];
  512. for (var i = 1; i < 31; i++) {
  513. data.push(i);
  514. }
  515. return data;
  516. }();
  517. // 1. 实例化对象
  518. var myChart = echarts.init(document.querySelector(".oldAnalysis .chart"));
  519. // 2.指定配置
  520. var option = {
  521. color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
  522. tooltip: {
  523. trigger: "axis",
  524. textStyle: {
  525. align: 'left' //图例左对齐
  526. },
  527. },
  528. legend: {
  529. // 如果series 对象有name 值,则 legend可以不用写data
  530. itemGap: 20,
  531. itemHeight: 2,
  532. itemWidth: 15,
  533. icon: 'rect',
  534. textStyle: {
  535. color: "#fff"
  536. },
  537. top: "bottom",
  538. },
  539. grid: {
  540. top: "0%",
  541. left: "1%",
  542. right: "1%",
  543. bottom: "15%",
  544. show: true, // 显示边框
  545. borderWidth: '0', //去除边框
  546. containLabel: true // 包含刻度文字在内
  547. },
  548. xAxis: {
  549. type: "category",
  550. boundaryGap: false,
  551. data: xData,
  552. axisTick: {
  553. show: false // 去除刻度线
  554. },
  555. axisLabel: {
  556. color: "#AADDFF" // 文本颜色
  557. },
  558. axisLine: {
  559. show: false // 去除轴线
  560. }
  561. },
  562. yAxis: {
  563. type: "value",
  564. axisTick: {
  565. show: false // 去除刻度线
  566. },
  567. axisLabel: {
  568. show: false // 去除文本
  569. },
  570. axisLine: {
  571. show: false // 去除轴线
  572. },
  573. splitLine: {
  574. lineStyle: {
  575. color: "#012f4a" // 分割线颜色
  576. }
  577. }
  578. },
  579. series: [{
  580. symbol: "none",
  581. name: "水泵启动",
  582. type: "line",
  583. smooth: true, // true 可以让我们的折线显示带有弧度
  584. areaStyle: {
  585. normal: {
  586. color: new echarts.graphic.LinearGradient(
  587. 0,
  588. 0,
  589. 0,
  590. 1, [{
  591. offset: 0,
  592. color: "rgba(255,156,0, 0.4)"
  593. },
  594. {
  595. offset: 0.8,
  596. color: "rgba(255,156,0, 0.3)"
  597. }
  598. ],
  599. false
  600. ),
  601. shadowColor: "rgba(0, 0, 0, 0.1)"
  602. }
  603. },
  604. data: sortData[0].data[0]
  605. },
  606. {
  607. symbol: "none",
  608. name: "水泵停止",
  609. type: "line",
  610. smooth: true,
  611. areaStyle: {
  612. normal: {
  613. color: new echarts.graphic.LinearGradient(
  614. 0,
  615. 0,
  616. 0,
  617. 1, [{
  618. offset: 0,
  619. color: "rgba(0,150,255,0.5)"
  620. },
  621. {
  622. offset: 0.8,
  623. color: "rgba(0,150,255, 0.1)"
  624. }
  625. ],
  626. false
  627. ),
  628. shadowColor: "rgba(0, 0, 0, 0.1)"
  629. }
  630. },
  631. data: sortData[0].data[1]
  632. }
  633. ]
  634. };
  635. myChart.setOption(option);
  636. window.addEventListener("resize", function() {
  637. myChart.resize();
  638. });
  639. // 点击切换效果
  640. $(".oldAnalysis .tab-line").on("click", "a", function() {
  641. $(this).addClass('active').siblings().removeClass('active')
  642. var obj = sortData[$(this).index()];
  643. option.series[0].data = obj.data[0];
  644. option.series[1].data = obj.data[1];
  645. // 重新渲染
  646. myChart.setOption(option);
  647. });
  648. })();
  649. // 折线图定制 (数据波动关联)
  650. (function() {
  651. var sortData = [{
  652. data: [
  653. [30, 70, 100, 120, 130, 190, 200, 230, 120, 100, 90, 80, 59, 30],
  654. ]
  655. }];
  656. var xData = ['一到二层', '二到三层', '三到四层', '四到五层', '五到六层', '六到七层', '七到八层', '八到九层', '九到十层', '十到十一层', '十一到十二层', '十二到十三层']
  657. // 1. 实例化对象
  658. var myChart = echarts.init(document.querySelector(".hotAnalysis .chart"));
  659. // 2.指定配置
  660. var option = {
  661. color: ["#FE92B3"], // 通过这个color修改三条线的颜色
  662. tooltip: {
  663. trigger: "axis",
  664. textStyle: {
  665. align: 'left' //图例左对齐
  666. },
  667. // backgroundColor: '#12DFE0',
  668. // formatter: '{a0}: {c0}<br />{b}'
  669. },
  670. legend: false
  671. // {
  672. // // 如果series 对象有name 值,则 legend可以不用写data
  673. // itemGap: 20,
  674. // itemHeight: 2,
  675. // itemWidth: 15,
  676. // icon: 'rect',
  677. // textStyle: {
  678. // color: "#fff"
  679. // },
  680. // top: "bottom",
  681. // }
  682. ,
  683. grid: {
  684. top: "0%",
  685. left: "1%",
  686. right: "1%",
  687. bottom: "15%",
  688. show: true, // 显示边框
  689. borderWidth: '0', //去除边框
  690. containLabel: false, // 不包含刻度文字在内
  691. },
  692. xAxis: {
  693. type: "category",
  694. boundaryGap: false,
  695. data: xData,
  696. axisTick: {
  697. show: false // 去除刻度线
  698. },
  699. axisLabel: {
  700. color: "#AADDFF" // 文本颜色
  701. },
  702. axisLine: {
  703. show: false // 去除轴线
  704. }
  705. },
  706. yAxis: {
  707. type: "value",
  708. axisTick: {
  709. show: false // 去除刻度线
  710. },
  711. axisLabel: {
  712. show: false // 去除文本
  713. },
  714. axisLine: {
  715. show: false // 去除轴线
  716. },
  717. splitLine: {
  718. lineStyle: {
  719. color: "#012f4a" // 分割线颜色
  720. }
  721. }
  722. },
  723. series: [{
  724. symbol: "none",
  725. name: "异常水压值",
  726. type: "line",
  727. smooth: true,
  728. areaStyle: {
  729. normal: {
  730. color: new echarts.graphic.LinearGradient(
  731. 0,
  732. 0,
  733. 0,
  734. 1, [{
  735. offset: 0,
  736. color: "rgba(255,147,180,.6)"
  737. },
  738. {
  739. offset: 0.8,
  740. color: "rgba(255,147,180, 0.4)"
  741. }
  742. ],
  743. false
  744. ),
  745. }
  746. },
  747. data: sortData[0].data[0]
  748. }]
  749. };
  750. myChart.setOption(option);
  751. window.addEventListener("resize", function() {
  752. myChart.resize();
  753. });
  754. })();
  755. // 饼形图定制
  756. // 折线图定制
  757. // (function() {
  758. // // 基于准备好的dom,初始化echarts实例
  759. // var myChart = echarts.init(document.querySelector(".pie .chart"));
  760. // option = {
  761. // tooltip: {
  762. // trigger: "item",
  763. // formatter: "{a} <br/>{b}: {c} ({d}%)",
  764. // position: function(p) {
  765. // //其中p为当前鼠标的位置
  766. // return [p[0] + 10, p[1] - 10];
  767. // }
  768. // },
  769. // legend: {
  770. // top: "90%",
  771. // itemWidth: 10,
  772. // itemHeight: 10,
  773. // data: ["0岁以下", "20-29岁", "30-39岁", "40-49岁", "50岁以上"],
  774. // textStyle: {
  775. // color: "rgba(255,255,255,.5)",
  776. // fontSize: "12"
  777. // }
  778. // },
  779. // series: [{
  780. // name: "年龄分布",
  781. // type: "pie",
  782. // center: ["50%", "42%"],
  783. // radius: ["40%", "60%"],
  784. // color: [
  785. // "#065aab",
  786. // "#066eab",
  787. // "#0682ab",
  788. // "#0696ab",
  789. // "#06a0ab",
  790. // "#06b4ab",
  791. // "#06c8ab",
  792. // "#06dcab",
  793. // "#06f0ab"
  794. // ],
  795. // label: { show: false },
  796. // labelLine: { show: false },
  797. // data: [
  798. // { value: 1, name: "0岁以下" },
  799. // { value: 4, name: "20-29岁" },
  800. // { value: 2, name: "30-39岁" },
  801. // { value: 2, name: "40-49岁" },
  802. // { value: 1, name: "50岁以上" }
  803. // ]
  804. // }]
  805. // };
  806. // // 使用刚指定的配置项和数据显示图表。
  807. // myChart.setOption(option);
  808. // window.addEventListener("resize", function() {
  809. // myChart.resize();
  810. // });
  811. // // 点击切换显示数据
  812. // $(".line h2").on("click", "a", function() {
  813. // // 点击a之后,根据当前的a的索引号,找到对应的yearData的数据
  814. // var obj = yearData[$(this).index()];
  815. // option.series[0].data = obj.data[0];
  816. // option.series[1].data = obj.data[1];
  817. // // 重新渲染数据
  818. // myChart.setOption(option);
  819. // });
  820. // })();
  821. // 折线图 优秀作品
  822. // (function() {
  823. // // 基于准备好的dom,初始化echarts实例
  824. // var myChart = echarts.init(document.querySelector(".line1 .chart"));
  825. // option = {
  826. // tooltip: {
  827. // trigger: "axis",
  828. // axisPointer: {
  829. // lineStyle: {
  830. // color: "#dddc6b"
  831. // }
  832. // }
  833. // },
  834. // legend: {
  835. // top: "0%",
  836. // textStyle: {
  837. // color: "rgba(255,255,255,.5)",
  838. // fontSize: "12"
  839. // }
  840. // },
  841. // grid: {
  842. // left: "10",
  843. // top: "30",
  844. // right: "10",
  845. // bottom: "10",
  846. // containLabel: true
  847. // },
  848. // xAxis: [{
  849. // type: "category",
  850. // boundaryGap: false,
  851. // axisLabel: {
  852. // textStyle: {
  853. // color: "rgba(255,255,255,.6)",
  854. // fontSize: 12
  855. // }
  856. // },
  857. // axisLine: {
  858. // lineStyle: {
  859. // color: "rgba(255,255,255,.2)"
  860. // }
  861. // },
  862. // data: [
  863. // "01",
  864. // "02",
  865. // "03",
  866. // "04",
  867. // "05",
  868. // "06",
  869. // "07",
  870. // "08",
  871. // "09",
  872. // "11",
  873. // "12",
  874. // "13",
  875. // "14",
  876. // "15",
  877. // "16",
  878. // "17",
  879. // "18",
  880. // "19",
  881. // "20",
  882. // "21",
  883. // "22",
  884. // "23",
  885. // "24",
  886. // "25",
  887. // "26",
  888. // "27",
  889. // "28",
  890. // "29",
  891. // "30"
  892. // ]
  893. // },
  894. // {
  895. // axisPointer: { show: false },
  896. // axisLine: { show: false },
  897. // position: "bottom",
  898. // offset: 20
  899. // }
  900. // ],
  901. // yAxis: [{
  902. // type: "value",
  903. // axisTick: { show: false },
  904. // axisLine: {
  905. // lineStyle: {
  906. // color: "rgba(255,255,255,.1)"
  907. // }
  908. // },
  909. // axisLabel: {
  910. // textStyle: {
  911. // color: "rgba(255,255,255,.6)",
  912. // fontSize: 12
  913. // }
  914. // },
  915. // splitLine: {
  916. // lineStyle: {
  917. // color: "rgba(255,255,255,.1)"
  918. // }
  919. // }
  920. // }],
  921. // series: [{
  922. // name: "播放量",
  923. // type: "line",
  924. // smooth: true,
  925. // symbol: "circle",
  926. // symbolSize: 5,
  927. // showSymbol: false,
  928. // lineStyle: {
  929. // normal: {
  930. // color: "#0184d5",
  931. // width: 2
  932. // }
  933. // },
  934. // areaStyle: {
  935. // normal: {
  936. // color: new echarts.graphic.LinearGradient(
  937. // 0,
  938. // 0,
  939. // 0,
  940. // 1, [{
  941. // offset: 0,
  942. // color: "rgba(1, 132, 213, 0.4)"
  943. // },
  944. // {
  945. // offset: 0.8,
  946. // color: "rgba(1, 132, 213, 0.1)"
  947. // }
  948. // ],
  949. // false
  950. // ),
  951. // shadowColor: "rgba(0, 0, 0, 0.1)"
  952. // }
  953. // },
  954. // itemStyle: {
  955. // normal: {
  956. // color: "#0184d5",
  957. // borderColor: "rgba(221, 220, 107, .1)",
  958. // borderWidth: 12
  959. // }
  960. // },
  961. // data: [
  962. // 30,
  963. // 40,
  964. // 30,
  965. // 40,
  966. // 30,
  967. // 40,
  968. // 30,
  969. // 60,
  970. // 20,
  971. // 40,
  972. // 20,
  973. // 40,
  974. // 30,
  975. // 40,
  976. // 30,
  977. // 40,
  978. // 30,
  979. // 40,
  980. // 30,
  981. // 60,
  982. // 20,
  983. // 40,
  984. // 20,
  985. // 40,
  986. // 30,
  987. // 60,
  988. // 20,
  989. // 40,
  990. // 20,
  991. // 40
  992. // ]
  993. // },
  994. // {
  995. // name: "转发量",
  996. // type: "line",
  997. // smooth: true,
  998. // symbol: "circle",
  999. // symbolSize: 5,
  1000. // showSymbol: false,
  1001. // lineStyle: {
  1002. // normal: {
  1003. // color: "#00d887",
  1004. // width: 2
  1005. // }
  1006. // },
  1007. // areaStyle: {
  1008. // normal: {
  1009. // color: new echarts.graphic.LinearGradient(
  1010. // 0,
  1011. // 0,
  1012. // 0,
  1013. // 1, [{
  1014. // offset: 0,
  1015. // color: "rgba(0, 216, 135, 0.4)"
  1016. // },
  1017. // {
  1018. // offset: 0.8,
  1019. // color: "rgba(0, 216, 135, 0.1)"
  1020. // }
  1021. // ],
  1022. // false
  1023. // ),
  1024. // shadowColor: "rgba(0, 0, 0, 0.1)"
  1025. // }
  1026. // },
  1027. // itemStyle: {
  1028. // normal: {
  1029. // color: "#00d887",
  1030. // borderColor: "rgba(221, 220, 107, .1)",
  1031. // borderWidth: 12
  1032. // }
  1033. // },
  1034. // data: [
  1035. // 50,
  1036. // 30,
  1037. // 50,
  1038. // 60,
  1039. // 10,
  1040. // 50,
  1041. // 30,
  1042. // 50,
  1043. // 60,
  1044. // 40,
  1045. // 60,
  1046. // 40,
  1047. // 80,
  1048. // 30,
  1049. // 50,
  1050. // 60,
  1051. // 10,
  1052. // 50,
  1053. // 30,
  1054. // 70,
  1055. // 20,
  1056. // 50,
  1057. // 10,
  1058. // 40,
  1059. // 50,
  1060. // 30,
  1061. // 70,
  1062. // 20,
  1063. // 50,
  1064. // 10,
  1065. // 40
  1066. // ]
  1067. // }
  1068. // ]
  1069. // };
  1070. // // 使用刚指定的配置项和数据显示图表。
  1071. // myChart.setOption(option);
  1072. // window.addEventListener("resize", function() {
  1073. // myChart.resize();
  1074. // });
  1075. // })();
  1076. // 点位分布统计模块
  1077. // (function() {
  1078. // // 1. 实例化对象
  1079. // var myChart = echarts.init(document.querySelector(".pie1 .chart"));
  1080. // // 2. 指定配置项和数据
  1081. // var option = {
  1082. // legend: {
  1083. // top: "90%",
  1084. // itemWidth: 10,
  1085. // itemHeight: 10,
  1086. // textStyle: {
  1087. // color: "rgba(255,255,255,.5)",
  1088. // fontSize: "12"
  1089. // }
  1090. // },
  1091. // tooltip: {
  1092. // trigger: "item",
  1093. // formatter: "{a} <br/>{b} : {c} ({d}%)"
  1094. // },
  1095. // // 注意颜色写的位置
  1096. // color: [
  1097. // "#006cff",
  1098. // "#60cda0",
  1099. // "#ed8884",
  1100. // "#ff9f7f",
  1101. // "#0096ff",
  1102. // "#9fe6b8",
  1103. // "#32c5e9",
  1104. // "#1d9dff"
  1105. // ],
  1106. // series: [{
  1107. // name: "点位统计",
  1108. // type: "pie",
  1109. // // 如果radius是百分比则必须加引号
  1110. // radius: ["10%", "70%"],
  1111. // center: ["50%", "42%"],
  1112. // roseType: "radius",
  1113. // data: [
  1114. // { value: 20, name: "云南" },
  1115. // { value: 26, name: "北京" },
  1116. // { value: 24, name: "山东" },
  1117. // { value: 25, name: "河北" },
  1118. // { value: 20, name: "江苏" },
  1119. // { value: 25, name: "浙江" },
  1120. // { value: 30, name: "深圳" },
  1121. // { value: 42, name: "广东" }
  1122. // ],
  1123. // // 修饰饼形图文字相关的样式 label对象
  1124. // label: {
  1125. // fontSize: 10
  1126. // },
  1127. // // 修饰引导线样式
  1128. // labelLine: {
  1129. // // 连接到图形的线长度
  1130. // length: 10,
  1131. // // 连接到文字的线长度
  1132. // length2: 10
  1133. // }
  1134. // }]
  1135. // };
  1136. // // 3. 配置项和数据给我们的实例化对象
  1137. // myChart.setOption(option);
  1138. // // 4. 当我们浏览器缩放的时候,图表也等比例缩放
  1139. // window.addEventListener("resize", function() {
  1140. // // 让我们的图表调用 resize这个方法
  1141. // myChart.resize();
  1142. // });
  1143. // })();