Vue echarts画甘特图流程详细讲解

vue项目中添加echarts,只需要增加echarts依赖,然后在main.js中引入echarts就可以使用了。

1、npm install echarts --save

2、修改main.js

import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts

3、具体页面使用:

<template>
  <div class="about">
    <h1>This is echarts page</h1>
    <div id="myechart" style="height:500px;width:1000px;" ></div>
  </div>
</template>
<script>
    export default{
      name:'MyEchart',
      mounted(){
        this.drawEchart()
      },
      methods:{
        drawEchart(){
          let myechart = this.$echarts.init(document.getElementById("myechart"))
          myechart.setOption({
            title:{text:"gant"},
            xAxis:{
              type:'value'
            },
            yAxis:{
              type:'category',
              data:["pro1","pro2","pro3","pro4","pro5","pro6"]
            },
            series:[
              {
                type:'bar',
                data:[10,20,30,46,78,22]
              }
            ]
          })
        }
      }
    }
</script>

展示效果:

甘特图在这个图形的基础上还需要增加数据,形成一个不断迭代的效果。

{
      type:'bar',
      name:'base',
     //stack:'Total',
      data:[10,20,30,46,78,22]
},
{
      type:'bar',
      name:'data2',
     //stack:'Total',
      data:[20,20,30,20,10,20]
}

如果不做设置,效果如下所示:

两组数据都从原始位置开始,我们想要的结果是叠加,这里只需要增加一个参数stack:'',指定一个相同的名称,效果如下:

我们如果不想展示第一段,只展示第二段,这时候可以设置第一个数据集对应的样式:

itemStyle{
  borderColor:'transparent',
  color:'transparent'
}

展示效果:

我们最终需要的效果如下所示:

从上面的示例,我们可以这样来实现, 把两组数据看作一组,每一组第一个数据集展示隐藏,这里如果是项目进度图,我们可以把开始时间、结束时间作为一组,结束时间与开始时间中间这一段时间就是持续时间,这个时间在这里是一个增量,就是第二个数据集是展示在第一个数据集的基础上,它不能再直接使用结束时间,而是使用间隔时间。

数据集:

series:[
              {
                type:'bar',
                name:'base',
                stack:'Total',
                data:[86,41,119,46],
                itemStyle:{
                  borderColor:'transparent',
                  color:'transparent'
                }
              },
              {
                type:'bar',
                name:'data2',
                stack:'Total',
                data:[100,100,100,100]
              },
              {
                type:'bar',
                name:'data3',
                stack:'Total',
                data:[75,67,64,52],
                itemStyle:{
                  borderColor:'transparent',
                  color:'transparent'
                }
              },
              {
                type:'bar',
                name:'data4',
                stack:'Total',
                data:[100,100,100,100]
              },
              {
                type:'bar',
                name:'data5',
                stack:'Total',
                data:[44,90,154,84],
                itemStyle:{
                  borderColor:'transparent',
                  color:'transparent'
                }
              },
              {
                type:'bar',
                name:'data6',
                stack:'Total',
                data:[100,100,100,100]
              },
              {
                type:'bar',
                name:'data7',
                stack:'Total',
                data:[46,183,'-',188],
                itemStyle:{
                  borderColor:'transparent',
                  color:'transparent'
                }
              },
              {
                type:'bar',
                name:'data8',
                stack:'Total',
                data:[100,100,'-',100]
              },
              {
                type:'bar',
                name:'data9',
                stack:'Total',
                data:[40,'-','-','-'],
                itemStyle:{
                  borderColor:'transparent',
                  color:'transparent'
                }
              },
              {
                type:'bar',
                name:'data8',
                stack:'Total',
                data:[{value:100,itemStyle:{normal:{color:'purple'}}},'-','-','-']
              }
            ]

最终的一个效果:

这个里面,对应每一个数据项都可以设置显示颜色,具体操作就是把data:[]数组变更为:

data:[
    {
     value:100,
     itemStyle:
         {
           normal:
           {color:'purple'}
         }
    },
    '-',
    '-',
    '-']

原来的数据项,变为一个对象,对象的值value对应原来的数字值,样式则使用itemStyle属性设置。

甘特图绘制需要注意的地方:

1、数据显示叠加,使用属性stack。

2、隐藏开始时间,设置显示透明即可。结束时间点不能直接设置结束时间,这是一个增量,需要设置时间间隔。

3、每一个数据项展示,可以单独设置样式,比如颜色,可以把data数组做修改,原来单一的数字值,修改为对象,包含value,itemStyle等属性。

到此这篇关于Vue echarts画甘特图流程详细讲解的文章就介绍到这了,更多相关Vue echarts画甘特图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vue通过echarts实现数据图表化显示

    目录 一.项目引入echarts 二.创建容器 三.配置图表 一.项目引入echarts ecahrts官网 官网有许多图表案例,并且可以直接复制对应的配置代码. vue项目中引入: 安装 npm install echarts --save 引入echarts 全部一次性引入: import * as echarts from 'echarts'; 按需引入: // 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口. import * as echarts fr

  • 在vue中使用echarts的方法以及可能遇到的问题

    目录 1.安装 2.在vue中引入(全局引入) 3.在vue中的使用 4.模板代码放在哪个位置 5.完整的一个vue页面实例: 6.实现效果 7.可能遇到的问题,下载不成功.使用 8.11:25-32 "export ‘default’ (imported as ‘echarts’) was not found in 'echarts 总结 1.安装 npm install echarts --save 2.在vue中引入(全局引入) // 引入echarts import echarts fr

  • Vue中的echarts图表如何实现loading效果

    目录 echarts图表实现loading效果 Vue使用echarts图表总结 安装echarts依赖 创建图表 在页面中的使用(在这里我用的局部引入) echarts图表实现loading效果 main.js 中配置Vue属性ecahrts // 引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts  data() 初始化数据调用数据 mounted() 周期函数内获取画布节点,并且调用加载loadi

  • Vue引入echarts方法与使用介绍

    目录 1. 引入echarts 2. 将echarts设置为全局 3. 在相关组件中使用 在Vue中引入echarts以及使用 今天来告诉大家如何将echart引入vue并巧妙利用钩子函数对表格数据进行渲染. 1. 引入echarts npm install echarts --save 在vue项目中安装 2. 将echarts设置为全局 main.js(项目入口文件) //引入echarts文件 import * as echarts from 'echarts' Vue.prototype

  • 在vue中使用echarts实现飞机航线水滴图词云图效果

    目录 vue中引入echarts 飞机航线 html css 准备数据 处理飞行数据获得起点和终点坐标起点和终点 配置地图 配置折线line和散点 使用 水滴图 配置 词云图 配置 vue中引入echarts npm install echarts 在main.js中引用并挂载到vue上便于使用 import * as echarts from 'echarts' Vue.prototype.$echarts =echarts 飞机航线 html <template> <div clas

  • vue使用Echarts设置数据无效问题记录及解决方法

    目录 场景: 遇到的问题: 最终解决方案: 小结: 场景: 做一个动态的柱状图,模拟socket效果,如图所示: 遇到的问题: 元数据格式是这样的: config: { data: [ { name: '义乌市', value: 169 }, { name: '东阳市', value: 123 }, { name: '武义县', value: 98 }, { name: '兰溪市', value: 75 }, { name: '金东区', value: 66 }, ], colors: ['#e

  • vue中echarts关系图动态增删节点以及连线方式

    目录 echarts关系图动态增删节点及连线 echarts关系图vue完整代码 echarts关系图动态增删节点及连线 首先,echarts的关系图有个非常坑的地方,就是节点的id必须连续,否则增删之后节点无法连接! 下面是简单的演示实现,实际要用动态增删的话,要复杂的多得多. 我是用的关系图是力引导图 更新后不会重新渲染,只是动态增加的效果 //假设你已经渲染了关系图 test() { let option = this.chart.getOption() //获取option配置项 //S

  • Vue-cli3中如何引入ECharts并实现自适应

    目录 如何引入ECharts并实现自适应 效果 Vue-cli使用ECharts并封装ECharts组件 1. 导入echarts 2. 封装echarts组件 3. 父组件引用测试 如何引入ECharts并实现自适应 效果 1. 安装echarts npm install echarts 2. components/echarts/index.vue <template>   <div :class="className" :style="{height:

  • Vue echarts画甘特图流程详细讲解

    vue项目中添加echarts,只需要增加echarts依赖,然后在main.js中引入echarts就可以使用了. 1.npm install echarts --save 2.修改main.js import * as echarts from 'echarts' Vue.prototype.$echarts = echarts 3.具体页面使用: <template> <div class="about"> <h1>This is echart

  • vue中使用svg画路径图的详细介绍

    什么是svg: SVG 是使用 XML 来描述二维图形和绘图程序的语言. svg的优点与特点 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失 SVG 是万维网联盟的标准 SVG 与诸如 DOM 和XSL 之类的 W3C 标准是一个整体 SVG 可被非常多的工具读取和修改(比如记事本) SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强. SVG 是可伸缩的 SVG 图像可在任何的分辨率下被高质量地打印 SVG 可在图像质量不下降的情况下被放大 SVG 图像中的文本

  • 使用IDEA画UML图的详细步骤

    目录 UML简介 如何使用IDEA画UML图 安装PlantUML插件 安装Graphviz Graphviz安装和环境变量配置 Graphviz安装 环境变量配置  写在前面:大家好!我是AC-fun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教.我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/.非常感谢大家的支持.一起加油,冲鸭!  用知识改变命运,用知

  • springboot+thymeleaf+mybatis实现甘特图的详细过程

    首先我们要明白:这个甘特图需要哪些动态数据. (1)需要:ID,tName,number,计划开始时间,开始时间,计划结束时间,结束时间,项目负责人,参与人,知情人ID,计划时长(可以计算得出的,不必在数据库中):前置任务:项目进度,该任务属于哪个任务 (2)然后利用easycode插件生成实体类,映射类,服务类,ontCroller等 (3)利用bootstrap框架做出甘特图的样式,写好JS. <!DOCTYPE html> <html xmlns:th="http://w

  • 如何利用echarts画雷达图和折柱混合

    目录 导语 雷达图 效果 折柱图 效果 总结 导语 通常在根据设计图写echarts的时候,很多效果是官方实例里没有的,我在代码里加上了一些常用的效果,并做了注释. 雷达图 var option = { radar: [{ //数据名称 indicator: [{ text: 'AIS未登记' }, { text: '巡逻发现' }, { text: '群众举报' }, { text: '其他' }, { text: '雷达发现' } ], center: ['50%', '50%'], rad

  • 关于vue中计算属性computed的详细讲解

    目录 1.定义 2.用法 3.computed的响应式依赖(缓存) 4.应用场景 附:计算属性的 getter 与 setter 总结 1.定义 computed是vue的计算属性,是根据依赖关系进行缓存的计算,只有在它的相关依赖发生改变时才会进行更新 2.用法 一般情况下,computed默认使用的是getter属性 3.computed的响应式依赖(缓存) 1. computed的每一个计算属性都会被缓存起来,只要计算属性所依赖的属性发生变化,计算属性就会重新执行,视图也会更新.下面代码中,

  • Sentinel整合Feign流程详细讲解

    修改84模块 84消费者调用提供者9003 Feign组件一般是消费侧 重点依赖 <!--SpringCloud openfeign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 激活Sentinel对Fei

  • Vue echarts模拟后端数据流程详解

    目录 KOA2的使用 安装 Koa app.js入口文件 KOA2的使用 KOA2是由Express 原班人马打造. 环境依赖 Node v7.6.0 及以上. 支持 async 和 await 洋葱模型的中间件 写响应函数(中间件) 响应函数是通过use的方式才能产生效果, 这个函数有两个参数, ctx :上下文, 指的是请求所处于的Web容器,我们可以通过 ctx.request 拿到请求对象, 也可 以通过 ctx.response 拿到响应对象 next :内层中间件执行的入口 模拟服务

  • Python Flask实现图片验证码与邮箱验证码流程详细讲解

    目录 1. 图片验证码 1.1 工具类-utility.py 1.2 控制层-user.py 2. 邮箱验证码 2.1 准备 2.2 工具类-utility.py 2.3 控制层-user.py 1. 图片验证码 1.1 工具类-utility.py 将所有和图片验证码有关的方法放在类 ImageCode import random import string from io import BytesIO from PIL import Image, ImageFont, ImageDraw c

  • Vue引入高德地图实现流程分步讲解

    目录 一.功能需求 二.准备 三.在webstorm中安装 四.防止在使用中AMap无法识别问 五.正式开发 六.步骤总结 七.效果 一.功能需求 1.根据输入内容进行模糊查询,选择地址后在地图上插上标记,并更新经纬度坐标显示 2.在地图点击后,根据回传的左边更新地址信息和坐标显示 二.准备 1.申请高德地图账号,创建应用 2.在应用管理中 获得key 和安全密钥 三.在webstorm中安装 npm i @amap/amap-jsapi-loader -S 四.防止在使用中AMap无法识别问

随机推荐