当前位置:   article > 正文

使用Echart做数据可视化智能大屏2_echart 大屏可视化

echart 大屏可视化

1. Echarts-介绍

常见的数据可视化库:

- D3.js   目前 Web 端评价最高的 Javascript 可视化工具库(入手难)  

- ECharts.js   百度出品的一个开源 Javascript 数据可视化库  

- Highcharts.js  国外的前端数据可视化库,非商用免费,被许多国外大公司所使用  

- AntV  蚂蚁金服全新一代数据可视化解决方案  等等

- Highcharts 和 Echarts 就像是 Office 和 WPS 的关系

ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 [ZRender](https://github.com/ecomfe/zrender),提供直观,交互丰富,可高度个性化定制的数据可视化图官网地址: https://www.echartsjs.com/zh/index.html 表.

2. 使用步骤:

Echarts官网地址: https://www.echartsjs.com/zh/index.html

  1.  下载并引入echarts 插件文件到html页面中
  2.  准备一个具备大小的DOM容器(必须有高度和宽度)
  3.  初始化echarts实例对象   var myChart = echarts.init(document.getElementById('main'))
  4.  指定配置项和数据(option)
  5.  将配置项设置给echarts实例对象

举个例子:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .box{
  10. width: 300px;
  11. height: 300px;
  12. background-color: aliceblue;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <!-- 第二步: 准备一个具备大小的DOM容器 -->
  18. <div class="box"></div>
  19. <!-- 第一步: 下载并引入echarts.js文件 -->
  20. <script src="js/echarts.min.js"></script>
  21. <script>
  22. // 第三步: 初始化实例对象 echarts.init(dom容器)
  23. var myChart = echarts.init(document.querySelector(".box"))
  24. // 第四步: 指定图标的配置项和数据
  25. var option = {
  26. title: {
  27. text: 'ECharts 入门示例'
  28. },
  29. tooltip: {},
  30. legend: {
  31. data: ['销量']
  32. },
  33. xAxis: {
  34. data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
  35. },
  36. yAxis: {},
  37. series: [
  38. {
  39. name: '销量',
  40. type: 'bar',
  41. data: [5, 20, 36, 10, 10, 20]
  42. }
  43. ]
  44. };
  45. // 第五步: 把配置项给实例对象
  46. myChart.setOption(option)
  47. </script>
  48. </body>
  49. </html>

需要了解的主要配置:series、xAxis、yAxis、grid、tooltip、title、legend、color

  • series:系列列表.每个系列通过 type 决定自己的图表类型 [{}]
  • xAxis:直角坐标系 grid 中的 x 轴
  • yAxis:直角坐标系 grid 中的 y 轴
  • grid:直角坐标系内绘图网格
  • title:标题组件
  • tooltip:提示框组件
  • legend:图例组件
  • color:调色盘颜色列表,是数组
  • toolbox: 工具栏

注:若 series 里有 name 值,那么 legend 里的 data 可以删除。

3. 柱状图图标

立即执行函数的妙用:为了防止变量污染,减少命名冲突,可以采取立即执行函数的写法,因为里面的变量都是局部变量。

在html中引入echarts.min.js

  1. <div class="panel bar">
  2. <h2>柱形图</h2>
  3. <div class="chart">图标</div>
  4. </div>
  5. <script src="js/echarts.min.js"></script>
  6. <script src="js/index.js"></script>
  1. // 柱状图模块1
  2. (function () {
  3. // 1,实例化对象
  4. var myChart = echarts.init(document.querySelector(".bar .chart"))
  5. // 2.指定配置项与数据、
  6. var option = {
  7. color: ["#2f89cf"],
  8. tooltip: {
  9. trigger: 'axis',
  10. axisPointer: {
  11. // 坐标轴指示器,坐标轴触发有效
  12. type: 'shadow', //默认为line直线
  13. }
  14. },
  15. // 修改图表大小
  16. grid: {
  17. left: '0%',
  18. top: "10px",
  19. right: '0%',
  20. bottom: '4%',
  21. containLabel: true
  22. },
  23. xAxis: [
  24. {
  25. type: 'category',
  26. data: ["旅游", "教育", "游戏", "医疗", "电商", "社交", "金融"],
  27. axisTick: {
  28. alignWithLabel: true
  29. },
  30. // 修改刻度标签相关样式
  31. axisLabel: {
  32. color: "rgba(255,255,255,.6)",
  33. fontSize: "12"
  34. },
  35. // 不显示坐标轴的线
  36. axisLine: {
  37. show: false
  38. }
  39. }
  40. ],
  41. yAxis: [
  42. {
  43. type: 'value',
  44. // 修改刻度标签相关样式
  45. axisLabel: {
  46. color: "rgba(255,255,255,.6)",
  47. fontSize: "12"
  48. },
  49. // y轴线条改为2px
  50. axisLine: {
  51. lineStyle: {
  52. color: "rgba(255,255,255,.1)",
  53. width: 2
  54. }
  55. },
  56. // y轴分割线的样式
  57. splitLine: {
  58. lineStyle: {
  59. color: "rgba(255,255,255,.1)"
  60. }
  61. }
  62. }
  63. ],
  64. series: [
  65. {
  66. name: 'Direct',
  67. type: 'bar',
  68. barWidth: '35%',
  69. data: [200, 300, 300, 900, 1500, 1200, 600],
  70. itemStyle: {
  71. // 修改柱子圆角
  72. barBorderRadius: 5
  73. }
  74. }
  75. ]
  76. };
  77. // 3. 把配置项给实例对象
  78. myChart.setOption(option)
  79. // 4. 让图标跟随屏幕自动的去自适应
  80. window.addEventListener("resize",function(){
  81. myChart.resize()
  82. })
  83. })();

 4. 折线图

  1. <div class="panel line2">
  2. <h2>折线图</h2>
  3. <div class="chart">图标</div>
  4. </div>
  1. (function () {
  2. var myChart = echarts.init(document.querySelector(".line2 .chart"))
  3. var option = {
  4. tooltip: {
  5. trigger: 'axis',
  6. },
  7. legend: {
  8. top: "0%",
  9. textStyle: {
  10. color: "rgba(255, 255, 255, .5)",
  11. fontSize: 12
  12. },
  13. data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
  14. },
  15. grid: {
  16. left: "10",
  17. top: "30",
  18. right: "10",
  19. bottom: "10",
  20. containLabel: true
  21. },
  22. xAxis: [
  23. {
  24. type: 'category',
  25. boundaryGap: false,
  26. data: ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "26", "28", "29", "30"],
  27. axisLabel: {
  28. textStyle: {
  29. color: "rgba(255,255,255,.6)",
  30. fontSize: 12
  31. }
  32. },
  33. axisLine: {
  34. lineStyle: {
  35. color: "rgba(255,255,255,.2)"
  36. }
  37. }
  38. }
  39. ],
  40. yAxis: [
  41. {
  42. type: 'value',
  43. axisTick: {
  44. show: false
  45. },
  46. axisLine: {
  47. lineStyle: {
  48. color: "rgba(255,255,255,.1)"
  49. },
  50. },
  51. axisLabel: {
  52. textStyle: {
  53. color: "rgba(255,255,255,.6)",
  54. fontSize: 12
  55. }
  56. },
  57. splitLine: {
  58. lineStyle: {
  59. color: "rgba(255,255,255,.1)"
  60. }
  61. }
  62. }
  63. ],
  64. series: [
  65. {
  66. name: 'Email',
  67. type: 'line',
  68. smooth: true,
  69. emphasis: {
  70. focus: 'series'
  71. },
  72. data: [30, 40, 30, 40, 30, 40, 30, 60, 20, 40, 30, 40, 30, 40, 30, 40, 30, 60, 20, 40, 30, 40, 30, 40, 30, 40, 20, 60, 50, 40],
  73. lineStyle: { //单独修改当前线条的样式
  74. color: "#0184d5",
  75. width: 2
  76. },
  77. areaStyle: { //填充颜色设置
  78. // color:"pink"
  79. // 渐变色
  80. color: new echarts.graphic.LinearGradient(
  81. 0,
  82. 0,
  83. 0,
  84. 1,
  85. [
  86. {
  87. offset: 0,
  88. color: "rgba(1, 132, 213, 0.4)" // 渐变色的起始颜色
  89. },
  90. {
  91. offset: 1,
  92. color: "rgba(1, 132, 213, 0.1)" // 渐变线的结束颜色
  93. }
  94. ],
  95. false
  96. ),
  97. shadowColor: "rgba(0, 0, 0, 0.1)"
  98. },
  99. symbol: "circle", //设置拐点
  100. symbolSize: 8, //设置拐点大小
  101. showSymbol: false, //开始不显示拐点,鼠标经过才显示
  102. itemStyle: { //设置拐点颜色
  103. color: "#0184d5",
  104. borderColor: "rgba(221, 220, 107, .1)",
  105. borderWidth: 12
  106. },
  107. },
  108. {
  109. name: 'Union Ads',
  110. type: 'line',
  111. areaStyle: {},
  112. smooth: true,
  113. areaStyle: {
  114. lineStyle: {
  115. normal: {
  116. color: "#00d887",
  117. width: 2
  118. }
  119. },
  120. },
  121. areaStyle: {
  122. normal: {
  123. color: new echarts.graphic.LinearGradient(
  124. 0,
  125. 0,
  126. 0,
  127. 1,
  128. [
  129. {
  130. offset: 0,
  131. color: "rgba(0, 216, 135, 0.4)"
  132. },
  133. {
  134. offset: 0.8,
  135. color: "rgba(0, 216, 135, 0.1)"
  136. }
  137. ],
  138. false
  139. ),
  140. shadowColor: "rgba(0, 0, 0, 0.1)"
  141. }
  142. },
  143. symbol: "circle", // 设置拐点 小圆点
  144. symbolSize: 5, // 拐点大小
  145. itemStyle: { // 设置拐点颜色以及边框
  146. color: "#00d887",
  147. borderColor: "rgba(221, 220, 107, .1)",
  148. borderWidth: 12
  149. },
  150. showSymbol: false, // 开始不显示拐点, 鼠标经过显示
  151. emphasis: {
  152. focus: 'series'
  153. },
  154. data: [130, 10, 20, 40, 30, 40, 80, 60, 20, 40, 90, 40, 20, 140, 30, 40, 130, 20, 20, 40, 80, 70, 30, 40, 30, 120, 20, 99, 50, 20],
  155. },
  156. ]
  157. }
  158. myChart.setOption(option)
  159. window.addEventListener("resize", function () {
  160. myChart.resize()
  161. })
  162. })();

5. 饼图

  1. <div class="panel pie2">
  2. <h2>饼形图</h2>
  3. <div class="chart">图标</div>
  4. </div>
  1. (function () {
  2. var myChart = echarts.init(document.querySelector(".pie2 .chart"))
  3. var option = {
  4. color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'],
  5. tooltip: {
  6. trigger: 'item',
  7. formatter: '{a} <br/>{b} : {c} ({d}%)'
  8. },
  9. legend: {
  10. // left: 'center',
  11. bottom: '0%',
  12. itemWidth:10,
  13. itemHeight:10,
  14. textStyle:{
  15. color:"rgba(255,255,255,.5)",
  16. fontSize:10
  17. }
  18. },
  19. series: [
  20. {
  21. name: '地区分布',
  22. type: 'pie',
  23. radius: ["10%", "70%"],
  24. center: ['50%', '50%'],
  25. roseType: 'radius',
  26. itemStyle: {
  27. borderRadius: 5
  28. },
  29. data: [
  30. { value: 20, name: '云南' },
  31. { value: 26, name: '北京' },
  32. { value: 24, name: '山东' },
  33. { value: 25, name: '河北' },
  34. { value: 20, name: '江苏' },
  35. { value: 25, name: '浙江' },
  36. { value: 30, name: '四川' },
  37. { value: 42, name: '湖北' }
  38. ],
  39. label: {
  40. fontSize: 10 //图形文字
  41. },
  42. labelLine: { //连接文字与图像的线条
  43. length: 6, //连接图形的线条
  44. length2: 8 //连接文字的线条
  45. }
  46. }
  47. ]
  48. };
  49. myChart.setOption(option)
  50. window.addEventListener("resize", function () {
  51. myChart.resize()
  52. })
  53. })()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/743069
推荐阅读
相关标签
  

闽ICP备14008679号