vue3中,vue-echarts基本使用(柱状图、饼图、折线图)

news2024/9/24 23:24:33

注意:vue-echarts在使用前要先安装echarts,不要只安装vue-echarts这一个

echarts官网地址:Apache EChartsApache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。icon-default.png?t=N7T8https://echarts.apache.org/zh/index.html

安装vue-echarts
npm i -S vue-echarts echarts

//cnpm 安装
cnpm i -S vue-echarts echarts

注意:Vue 2 下使用 vue-echarts,必须还要安装 @vue/composition-api :

npm i -D @vue/composition-api
//cnpm 安装
cnpm i -D @vue/composition-api
main.js中全局注册组件
import Echarts from "vue-echarts"
import * as echarts from "echarts"

app.component("v-chart", Echarts)

app.config.globalProperties.$echarts = echarts

 
自适应屏幕

方式1:autoresize:true  【推荐】

该方式自适应需满足两个条件:

  • 加上autoresize属性。
  • 图表外层需要指定vw单位的宽度,如width:100vw;

<template>
    <div style="width:100vw">
      <v-chart autoresize :option="option_column" style="height: 400px"></v-chart>
    </div>
</template>
基本使用  
  • 柱状态
<template>
    <v-chart ref="mychart1" class="chart" :option="optionBar"></v-chart>
</template>

<script setup>
    import { onMounted, reactive, watch, ref, onBeforeUnmount, shallowRef } from 'vue'

    // 渲染数
    mychart1.value.setOption(renderLineOptions())

    // 定义属性
    const mychart1 = ref(null)
    const optionBar = ref(null)

    // 坐标轴及其属性定义
    const renderLineOptions = () => {
        return {
            grid: {
                left: '3%',
                right: '4%',
                bottom: '8%',
                containLabel: true
            },
            xAxis: {
                data: data.chartName, // x轴的标题(定义的变量),可以是直接的数组["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
                axisLabel: {
                    show: true,
                    textStyle: {
                        fontSize: 15// 字体大小
                    }
                },
                axisLabel: {
                    show: true,
                rotate: 30    // 设置x轴标签旋转角度
                }
            },
            yAxis: {
                name: '工时/h',
                nameTextStyle: {
                    nameLocation: 'start'
                },
                axisLabel: {
                    show: true,
                    fontSize: 16
                },
                axisLine: {
                    show: true, // 是否显示Y轴线
                    lineStyle: {
                        width: 1, // 线的大小
                        type: 'solid' // Y轴线的类型
                    }
                }
            },
            series: [
                {
                    // 渲染的数据,可以使用 [5, 20, 36, 10, 10, 20],也可以是定义的变量(记得赋值)
                    data: data.chartRows, 
                    type: 'bar',
                    barWidth: '20%',
                    itemStyle: {
                        // 通常情况下:
                        color: function (params) {
                            // 每根柱子的颜色
                            return data.colorList[params.dataIndex]
                        },
                        offset: 6 // 偏移量
                    },
                    label: {
                        show: true,
                        position: 'top',
                        fontSize: 14,
                        formatter: (params) => {
                            const reData = (params.data || 0).toString().replace(/(\d)(?=(?:\d{3}) + $)/g, '$1,')
                            return reData
                        }
                    }
                }
            ]
        }
    }

</script>

  • 饼图 
    <template>
        <v-chart ref="mychart1" class="chart" :option="optionPie "></v-chart>
    </template>
    
    <script setup>
        import { onMounted, reactive, watch, ref, onBeforeUnmount, shallowRef } from 'vue'
    
    //饼图的数据格式对应的是key:value的形式
    // data.pieNumber = [
    //     { value:1, name: "开发" },
    //     { value:2, name: "维护" },
    //     { value:3, name: "测试" },
    //     { value:4, name: "BUG修复" },
    //     { value:5, name: "其他" }
    // ]
        // 渲染数
        mychart1.value.setOption(renderPieOptions ())
    
        // 定义属性
        const mychart1 = ref(null)
        const optionPie = ref(null)
    
        const renderPieOptions = () => {
            return {
                tooltip: {
                    trigger: "item",
                    formatter: "{a} <br/>{b} : {c} 个,占比: ({d}%)"
                },
                legend: {
                    orient: "vertical",
                    position: 'right',
                    right: '2%',
                    top: '20%',
                    data: data.pieTitle //这里的渲染的数据需要与series里面渲染的数据中的name保持一致
                },
                series: [
                    {
                        name: "任务类型占比分析表",
                        type: "pie",
                        radius: "70%",
                        center: ["45%", "55%"],
                        data: data.pieNumber, //渲染的数据
                        emphasis: {
                            itemStyle: {
                                shadowBlur: 10,
                                shadowOffsetX: 0,
                                shadowColor: "rgba(0, 0, 0, 0.5)"
                            }    
                        },
                        label: {
                            show: true, // 显示标签
                            formatter: '{b}个数占比:{d}%'
                        }
                    }
                ]
            }
        }
    
    </script>

  •  折线图
        xAxis: {
              type: 'category',
              data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
            },
            yAxis: {
              type: 'value'
            },
            series: [{
              data: [820, 932, 901, 934, 1290, 1330, 1320],
              type: 'line'
        }]

配置样式 
  • 官网样式:主题下载 - Apache EChartsApache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。icon-default.png?t=N7T8https://echarts.apache.org/zh/download-theme.html
  • 如:macarons、dark  、vintage、infographic、shine、roma

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

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

相关文章

SpringMVC中五种数据提交的方式

单个数据注入&#xff1a;在方法中声明一个和表单提交的参数名称相同的参数&#xff0c;由框架按照名称直接注入。对象封装注入&#xff1a;在方法中声明一个自定义的实体类参数&#xff0c;框架调用实体类中相应的setter方法注入属性值&#xff0c;只要保证实体类中成员变量的…

JAVAEE初阶 多线程进阶(二)

多线程进阶相关知识点 一.CAS1.1 CAS的原子类1.2 实现自旋锁1.3CAS中的ABA问题1.4 ABA问题的解决 二. callable接口三.reentrantLock3.1 reentrantLock与synchronized区别 四.信息量 semaphore五. CountDownLatch六. concurrentHashMap6.1 concurrentHashMap的优点 一.CAS CAS …

【SpringMVC】—— 如何配置使用SpringMVC(详细步骤)

目录 引言 使用 1、新建模块 2、导入坐标 3、创建SpringMVC控制器类 4、初始化SpringMVC环境 5、初始化Servlet容器&#xff0c;加载SpringMVC环境 6、配置运行 引言 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架&#xff0c;SpringMVC是表现层(web层)的框架,也…

评职称到底能给你带来什么❓❓

对于个人来说的用处&#xff1a; ①升职加薪 职称等级越高&#xff0c;职位越高&#xff0c;可享受的待遇就越高 ②前置资格 早评职称&#xff0c;前置职称就可以早几年拿&#xff0c;才能更快 评审更高级职称 ③提高个人身份 职称是专业技术人员能力和水平的表现&#xff0c;是…

吼!原来教师这样发布学生期末成绩,轻松没烦恼

​随着科技的进步和教育的不断创新&#xff0c;教师发布学生期末成绩的方式也在逐渐发生变化。传统的方式&#xff0c;如纸质成绩单和口头通知&#xff0c;已经不能满足现代教育的需求。那么&#xff0c;教师应该如何更有效地发布学生期末成绩呢&#xff1f; 一、电子成绩单 电…

Unity | AudioSource 无声音

Unity | AudioSource 无声音 你是否也会遇到相同的问题&#xff1f;AudioSource没声音&#xff1f; 解决&#xff1a; 注意查看一下几处声音设置&#xff1a;

Java多线程——并发和并行、实现方法

多线程 并发和并行 实现方法 代码演示 方式一 package com.qiong.thread1;public class MyThread extends Thread{Overridepublic void run() {for (int i 0; i < 20; i) {System.out.println(getName() "Hello World");}} }package com.qiong.thread1;public…

linux 时间同步后还是偏移

通过crond 设置定时一分钟同步一次时间&#xff1b; 查看日志每次同步都偏移几秒 怀疑是其他程序又做了时间同步&#xff1b; 检查发现有chronyd服务在运行。chronyd也是同步时间的服务 最终解决&#xff1a;关闭chronyd或者用chronyd同步时间 systemctl stop chronydsystemc…

如何优雅地使用Jupyter?基本用法及Jupyter插件使用

Jupyter是一种常用的交互式编辑器&#xff0c;下面我将分享Jupyter的基本用法&#xff0c;以及在日常写代码中使用最多的两个Jupyter插件&#xff0c;一个是JupyterLab&#xff0c;另一个用于给代码生成目录&#xff0c;熟练使用这两个插件&#xff0c;可极大提高我们的代码效率…

腾讯云服务器购买指南,2024更新购买步骤

腾讯云服务器购买流程很简单&#xff0c;有两种购买方式&#xff0c;直接在官方活动上购买比较划算&#xff0c;在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动…

开源笔记工具AFFiNE本地部署并结合内网穿透

前言 本篇文章讲解Notion开源平替全能知识库工具AFFINE如何本地部署&#xff0c;并实现公网远程访问。AFFiNE 是一个全新的开源项目&#xff0c;旨在克服 Notion 和 Miro 在安全和隐私方面的一些局限性。它的设计目标是帮助用户将会议记录、待办事项、文档中的目标、视频会议白…

L1-025 正整数A+B(Java)

题的目标很简单&#xff0c;就是求两个正整数A和B的和&#xff0c;其中A和B都在区间[1,1000]。稍微有点麻烦的是&#xff0c;输入并不保证是两个正整数。 输入格式&#xff1a; 输入在一行给出A和B&#xff0c;其间以空格分开。问题是A和B不一定是满足要求的正整数&#xff0…

基于Simdroid电子散热模块的电子设备机箱散热设计与优化

一、背景介绍 热设计就是通过合理的散热方式保证良好的热环境&#xff0c;确保电子设备可靠的工作。随着电子技术的迅速发展&#xff0c;电子设备的结构越来越复杂&#xff0c;且越来越趋于小型化&#xff0c;散热问题成为了影响设备可靠性的重要因素。据统计&#xff0c;电子…

NLP(十八):LLM 的推理优化技术纵览

原文&#xff1a;NLP&#xff08;十八&#xff09;&#xff1a;LLM 的推理优化技术纵览 - 知乎 目录 收起 一、子图融合&#xff08;subgraph fusion&#xff09; 1.1 FasterTransformer by NVIDIA 1.2 DeepSpeed Inference by Microsoft 1.3 MLC LLM by TVM 二、模型压…

freerRTOS

使用计数型信号量设计&#xff1a;生产者和消费者模型 代码&#xff0b;结果图

如何检查Post body并作出响应?

如果需要针对POST body中包含的参数对传入的请求作出响应&#xff0c;你打算怎么做&#xff1f;其实在使用Akamai EdgeWorkers的情况下&#xff0c;只需要一些高级MD&#xff08;MetaData&#xff09;技巧&#xff0c;这一切实现起来可以变得非常简单。 Akamai EdgeWorkers是什…

20240115在ubuntu20.04.6下查看显卡信息

20240115在ubuntu20.04.6下查看显卡信息 2024/1/15 17:33 百度&#xff1a;ubuntu查看显卡型号命令 https://linux.xiaosiseo.com/post/6037.html#id4 Ubuntu查看显卡信息命令 小四LINUX7个月前 (05-22)Ubuntu3230 小四LINUX&#xff0c;是小四运营旗下网站&#xff0c;专注LIN…

Kubernetes (十三) 存储——持久卷-动静态分配

一. 简介 二. NFS持久化存储步骤&#xff08;静态分配&#xff09; 1. 集群外…

【翻译】Qt Designer 如何使用资源文件

原文地址&#xff1a;https://doc.qt.io/qt-6/designer-resources.html Qt的资源浏览器是用于管理应用程序资源的工具&#xff0c;可以让开发者方便地查看和管理应用程序中的各种资源文件&#xff0c;例如图像、字体、布局文件、对话框等。 资源浏览器提供了一个可视化的界面&…

leetcode 349 两个数组的集合

题目 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2] 示例 2&#xff1a; 输入&#xff1a…