Vue简单使用Echart图表柱形图 vue使用柱形图 vue使用 echart图表柱形图 vue使用柱形图

Vue简单使用Echart图表柱形图 vue使用柱形图 vue使用 echart图表柱形图 vue使用柱形图

  • 1、安装依赖
  • 2、页面Demo使用
  • 3、效果图

1、安装依赖

官方文档:https://echarts.apache.org/zh/option.html#title

官方在线示例:https://echarts.apache.org/examples/zh/index.html

npm i echarts

2、页面Demo使用

<template>
  <div class="main-div">
	    <!-- 图表渲染的DIV -->
        <div id="normal" />
  </div>
</template>

<script>
import echarts from 'echarts'

export default {
  // 组件名称
  name: 'Index',
  // import引入的组件需要注入到对象中才能使用
  components: {},
  // 父组件传递值
  props: {
  },
  data() {
    // 这里存放数据
    return {
    	normal: null
    }
  },
  // 监听属性 类似于data概念
  computed: {},
  // 监控data中的数据变化
  watch: {},
  // 生命周期 - 创建完成(可以访问当前this实例)
  created() {
  },
  // 生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {
  
    // 初始化一个 柱形图 Demo传参示例 - 不建议在 Vue生命周期加载中初始化图表,性能影响很大,建议懒加载,手动点击然后初始化
    const data = [
      ['value', 'title'],
      [58212, 'Matcha Latte'],
      [78254, 'Milk Tea'],
      [41032, 'Cheese Cocoa'],
      [12755, 'Cheese Brownie'],
      [20145, 'Matcha Cocoa'],
      [79146, 'Tea'],
      [91852, 'Orange Juice'],
      [101852, 'Lemon Juice'],
      [20112, 'Walnut Brownie']
    ]
    this.initChart('主要标题', '简要标题', data, document.getElementById('normal'))
  },
  beforeCreate() { }, // 生命周期 - 创建之前
  beforeMount() { }, // 生命周期 - 挂载之前
  beforeUpdate() { }, // 生命周期 - 更新之前
  updated() { }, // 生命周期 - 更新之后
  beforeDestroy() { }, // 生命周期 - 销毁之前
  destroyed() { }, // 生命周期 - 销毁完成
  activated() { },
  // 方法集合
  methods: {
    /**
     * 初始化图表
     * @param title    图表主要标题
     * @param subtext  图表简介标题
     * @param data     数据列表 - 格式为 二维数组
     * @param chartDom 要渲染图表 的DOM元素: document.getElementById('')
     * 示例:value 表示X轴的数据, title表示 Y轴的标题
     *      ['value', 'title'],
            [58212, 'Matcha Latte'],
            [78254, 'Milk Tea'],
            [41032, 'Cheese Cocoa'],
            [12755, 'Cheese Brownie'],
            [20145, 'Matcha Cocoa'],
            [79146, 'Tea'],
            [91852, 'Orange Juice'],
            [101852, 'Lemon Juice'],
            [20112, 'Walnut Brownie']
     */
    initChart(title, subtext, data, chartDom) {
       // 计算图表容器高度,自动根据数据大小改变而改变
      let containerWidth = 200
      if (data.length <= 1) {
        containerWidth = 200
      } else {
        containerWidth = data.length * 40 // 假设每个柱形的宽度/高度为 20
      }

      // 销毁 已经初始化的元素
      try {
      	// 如果需要同时处理多个echart实例,需要增加额外处理逻辑
        if (this.normal !== null) {
          this.echart.dispose()
        }
      } catch (error) {
        console.info('如果是第一次初始化,全局实例是null,销毁会异常')
      }
      
      this.normal = echarts.init(chartDom, { devicePixelRatio: 1 }, {
        renderer: 'canvas', // 使用 canvas 渲染可能比使用 svg 渲染更高效
        width: 800,
        height: containerWidth
      })
      const option = {
        animation: false, // 禁用动画效果
        title: {
          text: title,
          subtext: subtext
        },
        dataset: {
          source: data
        },
        grid: { containLabel: true },
        xAxis: { name: '不良率: %' },
        yAxis: { type: 'category' },
        series: [
          {
            type: 'bar',
            barWidth: '50%',
            barCategoryGap: 10, // 原理是减小柱状图的宽度
            encode: {
              // Map the "value" column to X axis.
              x: 'value',
              // Map the "amount" column to Y axis.
              y: 'title'
            },
            label: {
              show: true, // 设置为 true 显示标签
              position: 'top', // 设置标签位置,可以是 'top', 'insideTop', 'insideBottom' 等
              color: 'black', // 设置标签颜色
              distance: 0, // 距离图形元素的距离。
              formatter: function(params) {
                // 格式化 数值内容
                return params.data[0] + ' %'
              },
              padding: [4, 5],
              lineHeight: 26,
              // eslint-disable-next-line no-dupe-keys
              position: 'right',
              // eslint-disable-next-line no-dupe-keys
              distance: 5,
              fontSize: 12
            },
            showBackground: true,
            itemStyle: {
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                { offset: 0, color: '#188df0' },
                { offset: 0.5, color: '#188df0' },
                { offset: 1, color: '#188df0' }
              ])
            }
          }
        ]
      }
      option && this.normal.setOption(option)
    }
  }
}
</script>

3、效果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/129877.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloudAlibaba——Nacos

Nacos是服务注册中心服务配置中心。替换了以前的EurekaConfigBus。 1.Nacos作为服务注册中心 Nacos支持AP和CP模式的转换。 2.Nacos作为服务配置中心 服务要配置两个yml文件&#xff0c;bootstrap.yml和application.yml。因为Nacos同springcloud-config一样&#xff0c;在项…

4S店汽车行业万能通用小程序源码系统 在线预约试驾+购车计算器 源码完全开源可二次开发

随着互联网技术的发展和普及&#xff0c;越来越多的消费者开始依赖于互联网进行消费。传统的汽车销售模式也正在经历着数字化转型&#xff0c;以适应消费者需求的变化。这款小程序源码系统就是为帮助汽车4S店等销售商实现数字化转型而开发的。 以下是部分核心功能的代码模块&a…

OushuDB 专家认证第四期报名开始啦!

OushuDB 专家认证培训第四期今日正式启动&#xff01;本次培训为偶数科技面向生态合作伙伴与客户公开举办的线上培训&#xff0c;旨在共同发展 OushuDB 生态。 报名时间&#xff1a;2023年11月9日9:00—11月30日12:00 报名方式&#xff1a;偶数科技官网&#xff08;点击下方阅…

新“芯”向荣|利用合作科研设计和优化电芯案例探究

利用合作科研设计和优化电芯 锂电行业发展的契机——我国致力于减少二氧化碳的排放&#xff0c;将2050年实现净零排放作为目标。 电池制造商、细分领域专用电芯设计厂商、汽车OEM厂商、电动垂直起降(eVTOL)飞机制造商以及电池材料供应商都投入了大量的资源&#xff0c;寻求电…

金融服务行业如何面对精细化的大数据模式下日益增加的文件传输压力?

随着数字化转型的加速&#xff0c;金融机构需要在数据化基础上进行升级和转型&#xff0c;挖掘互联网数据传输与金融业深度融合的新形态&#xff0c;同时确定如何更好地存储、保护和分析数据。然而&#xff0c;在精细化的大数据模式下&#xff0c;金融机构也面临着日益增加的数…

ChatGPT 上新,效果炸裂,知识平台才是大模型的最佳狩猎场

数新网络_让每个人享受数据的价值浙江数新网络有限公司是一家开源开放、专注于云数据智能操作系统和数据价值流通的服务商。公司自主研发的DataCyber云数据智能操作系统&#xff0c;主要包括数据平台CyberData、人工智能平台CyberAI、数据智能引擎CyberEngine、数据安全平台Cyb…

try-catch-finally执行以及他们在有return的情况下,基本数据类型、对象以及有异步赋值情况异同分析

这两天面试,遇到好几个人,都是那种我感觉我肚子里的墨水都吐出来完了,难不倒人家,于是问了下家里那位老狗,从最开始就念叨着你问他try-catch在有return的情况下怎么执行的,执行结果是啥,我前面没理,后面确实有点遭不住了,来看看吧,肚子里添点墨水,别把脸丢大了~ 做…

Android jetpack compose 组件学习

官网地址&#xff1a;https://developer.android.com/jetpack/compose/tutorial?hlzh-cn 一、写一个 hello world 在New Project的时候选择Photo and Tablet里的Empty Compose Activity&#xff0c;如下所示&#xff1a; 打开这个project之后&#xff0c;可以看到MainActivit…

WebSocket魔法师:打造实时应用的无限可能

1、背景 在开发一些前端页面的时候&#xff0c;总是能接收到这样的需求&#xff1a;如何保持页面并实现自动更新数据呢&#xff1f;以往的常规做法&#xff0c;是前端使用定时轮询后端接口&#xff0c;获取响应后重新渲染前端页面&#xff0c;这种做法虽然能达到类似的效果&…

RPC 框架 openfeign 介绍和学习使用总结

一、基本概念 RPC 远程过程调用&#xff08;Remote Procedure Call&#xff09;的缩写形式 Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文《Implementing remote procedure calls》对 RPC 做了经典的诠释。 RPC 是指计算机 A 上的进程&am…

这个平台竟然几秒就可以做出精致的翻页电子画册?

电子画册是现代人生活不可或缺的一部分&#xff0c;它美观大方&#xff0c;二次编辑方便&#xff0c;而且相比于传统纸质画册&#xff0c;电子画册还能够让你拥有更丰富的互动性和视觉体验。如何制作呢&#xff1f; 小编这里要给大家安利的平台是&#xff1a;FLBOOK&#xff0…

腾讯云2023年双11活动:云服务器1.8折起,还可领取9999元代金券!

2023年双11腾讯云推出了11.11云上盛惠大促活动&#xff0c;包括秒杀专区、服务器买赠、新人专区、代金券专区、境外优选、新老同享、续费专区以及热门上云场景等满足新用户、老用户、企业用户对云计算服务的各种需求。 一、腾讯云双11活动地址 活动入口&#xff1a;点此直达 …

vue同时校验多个表单

0 效果 1 代码 checkForm (formRef) {return new Promise((resolve, reject) > {this.$refs[formRef].validate((valid) > {if (valid) {resolve();} else {setTimeout(() > {this.$refs[formRef].clearValidate();reject(new Error(错误));}, 1500);}});}); }, conf…

达梦SQL语法兼容笔记

1. DDL工具语法 查看库和表列表 # 查看所有数据库 select distinct object_name from all_objects where object_typeSCH; # 查看所有可见的表名&#xff1a; SELECT table_name FROM all_tables; # 查看用户可见的所有表 SELECT table_name FROM all_tables WHERE owner s…

STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录

近期在使用STM32H563ZIT6这款芯片在开发板上使用正常&#xff0c;烧录到自己打的板子就遇到了芯片烧录一次后&#xff0c;再次上电无法烧录的问题。 遇到问题需要从以下5点进行分析。 首先看下开发板的原理图 1.BOOT0需要拉高。 2.NRST脚在开发板上是悬空的。这里我建议大家…

算法打卡02——删除有序数组中的重复项

题目&#xff1a;删除有序数组中的重复项 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑…

C4D vs Blender:哪个更适合你的需求?

对于初学者来说&#xff0c;选择合适的 3D 制作软件往往是一件很困扰的事情。近年来&#xff0c;C4D 和 Blender 成为了许多动画和 3D 建模爱好者的热门选择。那么&#xff0c;这两款软件各有什么特色呢&#xff1f;让我们一起来看看吧&#xff01; 一、软件特色 C4D 是一款商…

若依框架升级(对若依框架进行了升级,升级为Mybatis-plus)

ruoyi-plus: 对若依进行了升级Mybatis-plus版https://gitee.com/xiao--yan/ruoyi-plus.git

【UE5】 虚拟制片教程

目录 效果 步骤 一、下载素材 二、将视频转成PNG序列 三、开始虚拟制片 效果 步骤 一、下载素材 首先下载绿幕视频素材 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;jyfk 二、将视频转成PNG序列 打开“Adobe Premiere Pro”&#xff0c;导入素材 …

绿色低碳 数字未来-辽宁省建筑电气2023年学术年会-安科瑞 蒋静

2023年8月18日&#xff0c;辽宁省建筑电气2023年学术年会在辽宁友谊国宾馆成功召开。本届大会以“绿色低碳 数字未来”为主题&#xff0c;着眼为辽宁省建设提供智慧化电气设计及高质量产品服务。 安科瑞围绕“绿色低碳 数字未来”的主题&#xff0c;携充电桩及运营管理平台、工…
最新文章