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

注意: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

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

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

相关文章

如何设计一个低代码平台?

导语&#xff1a;如果企业想自主可控&#xff0c;从零开发一个低代码平台&#xff0c;如何技术选型&#xff1f;这篇文章或许会对你有所帮助。 一、前言 低代码平台至少包含表单建模、流程设计、报表可视化、代码生成器、系统管理、前端UI等组件&#xff0c;我们没必要重新造轮…

pve虚拟机的改名和修改ID

PVE的虚拟机名字在web界面是无法修改id和名字的。要注意id和名字不能重。 在使用备份时就发现虚拟机是以虚拟机id作为维一标识&#xff0c;如果有多台pve节点&#xff0c;但共用同一个nfs目录备份或使用同一个pbs进行备份时就必须保障id的唯一性。这时可以使用这个方法来进行补…

在线培训系统开发

随着远程学习和数字化教育的兴起&#xff0c;在线培训系统成为了教育领域的重要组成部分。在这篇文章中&#xff0c;我们将探讨在线培训系统开发的一些关键技术和概念。 前端开发 在在线培训系统中&#xff0c;前端开发起着至关重要的作用。使用现代的前端框架如React、Vue或…

node-red实现ModBus-RTU 通信协议(RS485信号输出)的数据交互

node-red实现485型 - 温湿度变表数据转换 一、介绍二、 通讯协议2.1 通讯基本参数2.2 数据帧格式定义2.3 寄存器地址2.4 通讯协议示例以及解释 三、 node-red实现数据交互3.1 node-red读取数据3.2 node-red写回数据 本文参考《86 壳液晶温湿度变送器使用说明书&#xff08;485 …

jetlinks 规则编排中的函数节点使用 js 脚本格式化输出当前系统时间的坑

网上搜到的都是类似如下这种&#xff1a; // 获取当前时间 var date new Date();// 格式化输出当前时间 var year date.getFullYear(); var month date.getMonth(); var day date.getDate(); var hour date.getHours(); var minute date.getMinutes(); var second date.…

定制聚四氟乙烯反应容器可配套温度计套管和冷凝管

是谁遇到氟化氢就头疼&#xff0c;是谁看着玻璃装置被强碱性试剂折腾的惨不忍睹。 特氟龙塑料材质可以帮您解决问题&#xff0c;聚四氟乙烯材质是其中的一种材质&#xff0c;耐温250℃&#xff0c;耐受强酸强碱和各种有机溶剂&#xff0c;加工灵活&#xff0c;来样或者图纸或者…

线性代数基础【4】线性方程组

第四章 线性方程组 一、线性方程组的基本概念与表达形式 二、线性方程组解的基本定理 定理1 设A为mXn矩阵,则 (1)齐次线性方程组AX0 只有零解的充分必要条件是r(A)n; (2)齐次线性方程组AX0 有非零解(或有无数个解)的充分必要条件是r(A)&#xff1c;n 推论1 设A为n阶矩阵,则…

Matlab论文插图绘制模板第135期—隐函数曲面图(fimplicit3)

在之前的文章中&#xff0c;分享了Matlab隐函数折线图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下隐函数曲面图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需要的朋友可以关…

html5+css3+bootstrap+js 新闻网页

新闻网页练习打卡&#xff01; 一、首页 二、社会 三、财经 四、视频展示 简易新闻网站&#xff08;期末作业&#xff09;

使用WAF防御网络上的隐蔽威胁之SSRF攻击

服务器端请求伪造&#xff08;SSRF&#xff09;攻击是一种常见的网络安全威胁&#xff0c;它允许攻击者诱使服务器执行恶意请求。与跨站请求伪造&#xff08;CSRF&#xff09;相比&#xff0c;SSRF攻击针对的是服务器而不是用户。了解SSRF攻击的工作原理、如何防御它&#xff0…

在众多的材质中选择灰口铸铁铸造划线平台、铸铁平台等的原因——河北北重

使用灰口铸铁制作铸铁平台和划线平台的主要原因有以下几点&#xff1a; 强度高&#xff1a;灰口铸铁具有较高的强度和硬度&#xff0c;能够承受较大的载荷和冲击力。这使得灰口铸铁非常适合制作需要承受重压和磨损的平台和设备。 耐磨性好&#xff1a;灰口铸铁具有较高的耐磨性…

C++结合OpenCV:图像的加法运算

一、图像运算 针对图像的加法运算、位运算都是比较基础的运算。但是&#xff0c;很多复杂的图像处理功能正是借助这些基础的运算来完成的。所以&#xff0c;牢固掌握基础操作&#xff0c;对于更好地实现图像处理是非常有帮助的。本章简单介绍了加法运算、位运算&#xff0c;并…

【java八股文】之Redis基础篇

【java八股文】之JVM基础篇-CSDN博客 【java八股文】之MYSQL基础篇-CSDN博客 【java八股文】之Redis基础篇-CSDN博客 【java八股文】之Spring系列篇-CSDN博客 【java八股文】之分布式系列篇-CSDN博客 【java八股文】之多线程篇-CSDN博客 【java八股文】之JVM基础篇-CSDN博…

OpenHarmony—Docker编译环境

Docker环境介绍 OpenHarmony为开发者提供了两种Docker环境&#xff0c;以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下&#xff1a; 独立Docker环境&#xff1a;适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。基于HPM的Docker环…

视频和音频怎么合并在一起?分享3个轻松合并的实用技巧

视频和音频怎么合并在一起&#xff1f;在数字媒体时代&#xff0c;视频和音频是制作多媒体内容不可或缺的元素。有时我们需要将视频和音频合并在一起&#xff0c;以创建更丰富、更有趣的多媒体内容。那么&#xff0c;如何将视频和音频合并在一起呢&#xff1f;下面将介绍一些实…

【C++】__declspec含义

目录 一、__declspec(dllexport)如果这篇文章对你有所帮助&#xff0c;渴望获得你的一个点赞&#xff01; 一、__declspec(dllexport) __declspec(dllexport) 是 Microsoft Visual C 编译器提供的一个扩展&#xff0c;用于指示一个函数或变量在 DLL&#xff08;动态链接库&…

scrapy爬虫实战

scrapy爬虫实战 Scrapy 简介主要特性示例代码 安装scrapy&#xff0c;并创建项目运行单个脚本代码示例配置itemsetting 爬虫脚本 代码解析xpath基本语法&#xff1a;路径表达式示例&#xff1a;通配符和多路径&#xff1a;函数&#xff1a;示例&#xff1a; 批量运行附录1&…

自动化测试 - Web自动化测试原理

目前市面上有很多Web UI自动化测试框架&#xff0c;比如WatiN, Selinimu,WebDriver&#xff0c;还有VS2010中的Coded UI等等. 这些框架都可以操作Web中的控件&#xff0c;模拟用户输入&#xff0c;点击等操作&#xff0c;实现Web自动化测试。其实这些工具的原理都一样&#xff…

谷达冠楠:抖店新手小白适合卖什么

随着抖音平台的不断发展&#xff0c;越来越多的人开始尝试在抖音上开设自己的店铺&#xff0c;希望通过这个平台实现创业梦想。然而&#xff0c;对于新手小白来说&#xff0c;如何选择合适的商品进行销售是一个非常重要的问题。本文将为您介绍一些适合抖店新手小白销售的商品类…

若依框架实现排序【升序或降序】很简单

前端实现 1. 在表格上加监听函数sort-change。如下红框所示&#xff1a; 2. 在表行上加排序字:sort-orders&#xff0c;可排序字sortable。如下红框所示&#xff1a; 3. 添加监听函数实现。代码如下&#xff1a; handleSortChange(column) {this.queryParams.orderByColumn …