zoukankan      html  css  js  c++  java
  • vue+echarts生成图表步骤

    一、开发环境

    (一) 安装配置 Node.js

    1、下载安装 Node.js

    下载地址:https://nodejs.org/zh-cn/

    文件名:node-v16.13.1-x64.msi

    2、检测 PATH 环境变量

    点击 开始 => 运行 => "cmd"

    运行 "path" ,确认输出结果中包含:C:\Program Files\nodejs\

    3、检查 Node.js 版本

    运行 "node --version" ,确认输出结果:v16.13.0

    (二) 安装配置 Visual Studio Code

    1、下载 Visual Studio Code

    下载地址:https://code.visualstudio.com/

    文件名:VSCodeUserSetup-x64-1.63.0

    2、安装 Visual Studio Code

    在安装过程中,勾选 "添加到PATH"

    3、配置语言

    打开插件面板,搜索 Chinese ,安装 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code

    4、安装插件

    依次安装插件:HTML CSS SupportESLintVeturvue-helper

    二、新建项目

    (一) 启动命令行工具

    1、右键 开始 ,点击 windows powershell (管理员) ,打开命令行。

    2、执行 D: 命令,切换至D盘。

    (二) 创建项目

    依次执行以下命令:

    1、执行 npm install -g @vue/cli 来安装 vue 客户端工具

    2、执行 vue create dataview 来初始化项目,在选择列表中选择 Default (Vue 3 Preview) ,然后回车安装。

    三、工作区

    (一) 打开项目

    1、启动 Visual Studio Code

    2、点击 文件 => 打开文件夹 ,选择D盘下的 dataview 文件夹。

    (二) 打开终端

    1、点击 查看 => 终端

    (三) 运行项目

    1、执行 npm run serve 来运行项目。

    2、启动浏览器并访问:http://localhost:8080/

    四、组件

    (一) 新建组件

    1、在 src/components 目录下新增 Covid.vue 文件。

    (二) 根标签

    所有组件由 templatescriptstyle 三个标签组成。

    template 标签内必须且只能有一个子标签。

    示例代码如下:

     <template>
       <div id="main"></div>
     </template>
     
     <script>
     export default {
       data() {
         return {
     
        }
      },
       mounted() {
     
      },
       methods: {
     
      }
     }
     </script>
     
     <style>
     #main { 600px; height: 400px; }
     </style>

    (三) 注册组件

    1、在 App.vue 中注册组件:

     <template>
       <!-- <img alt="Vue logo" src="./assets/logo.png"> -->
       <!-- <HelloWorld msg="Welcome to Your Vue.js App"/> -->
       <!-- 第3步:添加组件 -->
       <Covid />
     </template>
     
     <script>
     // import HelloWorld from './components/HelloWorld.vue'
     // 第1步:导入组件
     import Covid from './components/Covid.vue'
     
     export default {
       name: 'App',
       components: {
         // HelloWorld
         // 第2步:注册组件
         Covid
      }
     }
     </script>
     
     <style>
     #app {
       font-family: Avenir, Helvetica, Arial, sans-serif;
       -webkit-font-smoothing: antialiased;
       -moz-osx-font-smoothing: grayscale;
       text-align: center;
       color: #2c3e50;
       margin-top: 60px;
     }
     </style>

    五、添加数据

    (一) 添加数据文件

    以下操作二选一,视情况而定:

    1、在 public 目录下新增 covid.json 文件,将数据拷贝并粘贴到文件中。

    2、将数据文件拷贝并粘贴到 public 目录下。

    (二) 配置 axios

    1、点击 终端 => 新建终端 ,运行 npm install axios 命令安装 axios 。(若项目中已提供,则跳过此步骤)

    2、打开 main.js 文件,全局注册 axios

     // 旧代码:
     // import { createApp } from 'vue'
     // import App from './App.vue'
     
     // createApp(App).mount('#app')
     
     // 新代码:
     import { createApp } from 'vue'
     import App from './App.vue'
     
     const app = createApp(App)
     
     // 全局注册axios
     import axios from 'axios'
     app.config.globalProperties.$http = axios
     
     app.mount('#app')

    (三) 读取数据

    1、在 Covid.vue 中请求 covid.json 数据。

     <script>
     export default {
       mounted() {
         this.loadData()
      },
       methods: {
         loadData() {
           // 发起get请求,真实场景中将路径更换为webapi地址
           this.$http.get('covid.json', {})
            .then((res) => {
               // 输出读取到的数据
               console.log(res.data)
            })
        }
      }
     }
     </script>

    2、此时刷新 http://localhost:8080/ 页面,即可看到 Console 控制台输出的数据。

    六、配置图表

    (一) 配置 echarts

    1、拷贝 echarts.min.jspublic 目录下。

    2、在 Covid.vue 中导入 echarts

     <script>
     // 第1步:导入echarts
     const echarts = require('../../public/echarts.min.js')
     export default {
       mounted() {
         this.loadData()
      },
       methods: {
         loadData() {
           // 发起get请求,真实场景中将路径更换为webapi地址
           this.$http.get('covid.json', {})
            .then((res) => {
               // 输出读取到的数据
               console.log(res.data)
               // 第2步:图表默认配置
               const option = {
                 title: {
                   text: '新冠数据统计'
                },
                 legend: {
                   data: ['Email', 'Union Ads', 'Video Ads']
                },
                 xAxis: {
                   type: 'category',
                   boundaryGap: false,
                   data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                },
                 yAxis: {
                   type: 'value'
                },
                 series: [
                  {
                     name: 'Email',
                     type: 'line',
                     stack: 'Total',
                     data: [120, 132, 101, 134, 90, 230, 210]
                  },
                  {
                     name: 'Union Ads',
                     type: 'line',
                     stack: 'Total',
                     data: [220, 182, 191, 234, 290, 330, 310]
                  },
                  {
                     name: 'Video Ads',
                     type: 'line',
                     stack: 'Total',
                     data: [150, 232, 201, 154, 190, 330, 410]
                  }
                ]
              }
               // 第3步:渲染图表
               var chartDom = document.getElementById('main')
               var myChart = echarts.init(chartDom)
               myChart.setOption(option)
            })
        }
      }
     }
     </script>

    (二) 转换数据

    1、生成 legendxAxisseries 中所需求的数据,更新配置:

     <script>
     // 第1步:导入echarts
     const echarts = require('../../public/echarts.min.js')
     export default {
       mounted() {
         this.loadData()
      },
       methods: {
         loadData() {
           // 发起get请求,真实场景中将路径更换为webapi地址
           this.$http.get('covid.json', {})
            .then((res) => {
               // 输出读取到的数据
               console.log(res.data)
               // 第2步:图表默认配置
               const option = {
                 title: {
                   text: '新冠数据统计'
                },
                 legend: {
                   data: ['Email', 'Union Ads', 'Video Ads']
                },
                 xAxis: {
                   type: 'category',
                   boundaryGap: false,
                   data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                },
                 yAxis: {
                   type: 'value'
                },
                 series: [
                  {
                     name: 'Email',
                     type: 'line',
                     stack: 'Total',
                     data: [120, 132, 101, 134, 90, 230, 210]
                  },
                  {
                     name: 'Union Ads',
                     type: 'line',
                     stack: 'Total',
                     data: [220, 182, 191, 234, 290, 330, 310]
                  },
                  {
                     name: 'Video Ads',
                     type: 'line',
                     stack: 'Total',
                     data: [150, 232, 201, 154, 190, 330, 410]
                  }
                ]
              }
               // 第4步:生成数据
               var legendArr = ['累计确诊总数', '累计出院', '接受医学观察']
               var xaxisArr = []
               var ljqzzsArr = []
               var ljcyArr = []
               var jsyxgcArr = []
               var dataArr = res.data.data
               for (var i = 0; i < dataArr.length; i++) {
                 xaxisArr.push(dataArr[i].jzrq)
                 ljqzzsArr.push(dataArr[i].ljqzzs)
                 ljcyArr.push(dataArr[i].ljcy)
                 jsyxgcArr.push(dataArr[i].jsyxgc)
              }
               // 第5步:更新配置
               option.legend.data = legendArr
               option.xAxis.data = xaxisArr
               option.series[0].name = '累计确诊总数'
               option.series[0].data = ljqzzsArr
               option.series[1].name = '累计出院'
               option.series[1].data = ljcyArr
               option.series[2].name = '接受医学观察'
               option.series[2].data = jsyxgcArr
               // 第3步:渲染图表
               var chartDom = document.getElementById('main')
               var myChart = echarts.init(chartDom)
               myChart.setOption(option)
            })
        }
      }
     }
     </script>

     

  • 相关阅读:
    Android中Handler的使用
    Android ListView使用
    Android ListView的XML属性
    Android ListView几个重要属性
    Android设置日期DatePickerDialog
    Android资源文件说明
    Android使用xml文件中的array资源
    Android:控件Spinner实现下拉列表
    如何搭建个人博客网站(Mac)
    SVProgressHUD源码解读(2.0.3)
  • 原文地址:https://www.cnblogs.com/LEPENGYANG/p/15736356.html
Copyright © 2011-2022 走看看