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

news2024/11/17 17:49:53

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: 'svg ', // 使用 svg 渲染可能比使用 canvas  渲染更高效,svg渲染比canvas生成的图表清晰
        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.coloradmin.cn/o/1200559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows系统winget一键安装和使用

winget命令概述 用户可以在 Windows 10 和 Windows 11 计算机上使用 winget 命令行工具来发现、安装、升级、删除和配置应用程序。 此工具是 Windows 程序包管理器服务的客户端接口 在 Windows 沙盒上安装 winget Windows 沙盒提供了一个轻型桌面环境&#xff0c;可以安全地独…

使用python电脑轻量级控制手机—adb命令和手机投屏

文章目录 一、通过无线连接手机和电脑二、使用adb命令轻量级控制手机二、使用scrcpy控制手机 通过电脑控制手机有多种方式如appnium等&#xff0c;本文介绍的是两种轻量级的方案&#xff0c;使用adb命令刚和手机投屏。 一、通过无线连接手机和电脑 1、手机设置 开发者选项—us…

AD教程 (十三)常见CHIP封装的创建

AD教程 &#xff08;十三&#xff09;常见CHIP&#xff08;贴片&#xff09;封装的创建 PCB封装是电子设计图纸和实物之间的映射体&#xff0c;具有精准数据的要求&#xff0c;在实际设计中需要通过规格书获取创建封装的数据参数。 PCB封装和实物的大小一致。PCB封装是承载实物…

linux_day03

1、复习 遇到虚拟机异常退出&#xff0c;会生成配置文件&#xff0c;不确定文件以后是不是还要用的情况下&#xff0c;先改文件名&#xff0c;再启动虚拟机&#xff1b; 2、磁盘相关命令&#xff1a; df&#xff08;disk full&#xff09;&#xff1a;查看磁盘整体状况 -h &…

【JAVA学习笔记】69 - 多用户通信系统

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/QQClient https://github.com/yinhai1114/Java_Learning_Code/tree/main/QQServer 〇、环境设置以及前言 该项目内会弱化UI界面的设计&#xff0c;因为JAVA本质不是用来开发界面的。 项目开发流程 对于…

Windows桌面黑屏无法打开软件窗口不显示卡死等解决方案

问题还原 该软件窗口无论如何操作均 无法打开显示的窗口 ,但是 可使用 ALTTab 看到任务视图 目录 问题还原 解决方案 1. 使用 WinR 打开命令窗口 盲输 cmd 2. 盲输 taskkill /f /im explorer.exe 关闭资源管理器 3. 输入 start explorer.exe 启动任务管理器即可恢复正常…

摊牌 了,我不藏了,上线了一年多的网站还是广而告之吧!

大家好&#xff0c;我是大明哥&#xff0c;一个专注「死磕 Java」系列文章创作的程序员。 本文已收录到我的小站&#xff1a;https://skjava.com。 从去年开始一直有小伙伴问我&#xff0c;大明哥&#xff0c;你的网站怎么打不开了&#xff1f;我只能苦涩地跟他说&#xff0c;没…

仿写知乎日报第四周

本周主要修改了以往的一些bug&#xff0c;实现了一些遗漏的新功能。 无限右滑 无限右滑我听了学长的思路&#xff0c;首先在scrollView的画布大小设置多一个宽度的画布&#xff0c;然后每当滑到那个画布的时候&#xff0c;就调用一个通知&#xff0c;该通知会触发在首页的vie…

第一百七十回 Material3中的IconButton

文章目录 1. 概念介绍2. 使用方法2.1 filled风格2.2 filledTonal风格2.3 outlined风格 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何修改NavigationBar组件的形状"相关的内容&#xff0c;本章回中将 介绍IconButtion组件.闲话休…

深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…

Mybatis-Plus入门

Mybatis-Plus入门 MyBatis-Plus 官网&#xff1a;https://mp.baomidou.com/ 1、简介 MyBatis-Plus (简称 MP) 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、 提高效率而生。 https://github.com/baomidou/mybatis-p…

优秀智慧园区案例 - 中建科技产业园(中建·光谷之星),万字长文解析先进智慧园区建设方案经验

一、项目背景 中建科技产业园&#xff08;中建光谷之星&#xff09;&#xff0c;位于武汉光谷中心城、中国&#xff08;湖北&#xff09;自贸试验区武汉片区双核心区&#xff0c;光谷发展主轴高新大道北侧&#xff0c;建筑面积108万平米&#xff0c;是中建三局“中建之星”和“…

物联网AI MicroPython学习之语法 network网络配置模块

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; network介绍 模块功能&#xff1a; 用于管理Wi-Fi和以太网的网络模块参考用法&#xff1a; import network import time nic network.WLAN(network.STA_IF) nic.active(True) if not nic.isconnected():…

WebSocket网络协议

二十六、WebSocket 26.1 介绍 WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输。 HHTP协议和WebSocket协议对比&#xff…

选购护眼台灯,全网都没有说清一个关键点!——照度均匀度

网上关于护眼台灯的选购推荐帖子多如牛毛&#xff0c;好台灯选购要点大体可归纳为以下五点&#xff1a; RG0无蓝光危害&#xff08;豁免级蓝光危害&#xff0c;RG1为低蓝光危害、RG2、RG3分别为中度和高危危害&#xff09; 无眩光&#xff0c;无可视频闪&#xff08;不刺眼…

tensorboard报错解决:No dashboards are active for the current data set

版本&#xff1a;tensorboard 2.10.0 问题&#xff1a;文件夹下明明有events文件&#xff0c;但用tensorboard命令却无法显示。 例如&#xff1a; 原因&#xff1a;有可能是文件路径太长了&#xff0c;导致系统无法读取文件。在win系统中规定&#xff0c;目录的绝对路径不得超…

Java通过JNI技术调用C++动态链接库的helloword测试

JNI调用原理 原理就不细说了&#xff0c;其实就是写个库给Java调&#xff0c;可以百度一下Java JNI&#xff0c;下面是HelloWorld代码测试 编写一个本地测试类 package com.my.study.cpp_jni;/*** 测试Java调用C库* <p>使用命令javac -h . NativeTest.java自动生成C头…

相机突然断电,保存的DAT视频文件如何打开

3-6 本文主要解决因相机突然断电导致拍摄的视频文件打不开的问题。 在平常使用相机拍摄视频&#xff0c;比如使用佳能相机拍摄视频的时候&#xff0c;如果电池突然断电&#xff0c;就非常有可能会导致视频没来得及保存而损坏的情况&#xff0c;比如会产生下图中的这种DAT文件…

云端部署ChatGLM-6B

大模型这里更新是挺快的&#xff0c;我参考的视频教程就和我这个稍微有些不一样&#xff0c;这距离教程发布只过去4天而已… 不过基本操作也差不多 AutoDL算力云&#xff1a;https://www.autodl.com/home ChatGLM3&#xff1a;https://github.com/THUDM/ChatGLM3/tree/main Hug…

Linux进程的认识与了解[上]

文章目录 1.何为进程?1.1对进程的认识1.2基本概念 2.OS如何管理大量进程?2.1图解2.2进程的形成 3.何为PCB?3.1对PCB的认识3.2task_ struct内容分类3.2对进程表的认识 4.查看进程4.1基础指令4.2获取某进程的PID(process id)4.3杀死进程4.4获取当前进程的父进程的ppid(parent …