echarts用pictorialBar实现3D柱状图

news2024/12/28 21:00:53

先看下效果

柱状图效果

实现思路

  1. 描绘一个普通的柱状图
  2. 通过象形柱图(pictorialBar)在柱状图的顶部添加一个图形类型(symbol)菱形

代码实现

<template>
    <div id="symbolBar"></div>
</template>
<script setup>
    import {onMounted} from 'vue'
    import * as echarts from 'echarts';
    
	// 模拟数据
    const chartData = {
        xData: ['智慧社区','智慧园区','智慧党建'],
        data: [2000, 5000, 4000]
    }
    const drawBar = () => {
        let curChart = echarts.init(document.getElementById('symbolBar'))
        const exampleOption = {
        	// 提示框效果设置
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow',
                },
                formatter: (params) => {
                    const str = `项目: ${params[0].axisValue}
                    </br>
                    ${params[0].marker}访问量: ${params[0].value}`
                    return str;
                },
            },
            // 图例设置
            legend: {
                show:true,
                textStyle: { fontSize: 12, color: '#fff' },
                itemWidth: 12,
                itemHeight: 12,
                itemGap: 15,
                top: '0%',
                right: '0%',
            },
            textStyle: {
                fontSize: 12
            },
            grid: {
                containLabel: true, // 防止标签溢出
                left: '0%',
                top: '10%',
                bottom: '0%',
                right: '0%',
            },
            // X轴设置
            xAxis: {
                type: 'category',
                data: chartData.xData,
                axisLine: {
                    lineStyle: {
                        color: '#979797',
                        opacity: 0.38
                    },
                },
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    margin: 10,
                    fontFamily: 'Microsoft YaHei',
                    color: '#ffffff',
                    fontSize: 12
                },
            },
            // Y轴设置
            yAxis: {
                nameTextStyle: {
                    verticalAlign: 'middle',
                    align: "right"
                },
                type: 'value',
                min:0,
                boundaryGap: ['0%', '10%'],
                axisLine: {
                    show: true,
                    lineStyle: {
                        color: '#979797',
                        opacity: 0.38
                    },
                },
                splitLine: {
                    lineStyle: {
                        color: ['#fff'],
                        type: 'dashed',
                        opacity: 0.09,
                    },
                },
                axisLabel: {
                    fontSize: 12
                },
            },
            series: [
            	// 柱状图描绘
                {
                    name: "项目",
                    data: chartData.data,
                    type: 'bar',
                    barMaxWidth: 'auto',
                    barWidth: 22,
                    itemStyle: {
                        color: {
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1,
                            type: 'linear',
                            global: false,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: '#16B2FF',
                                },
                                {
                                    offset: 1,
                                    color: 'rgba(90,74,219,0.44)'
                                },
                            ],
                        },
                    },
                },
                // 菱形描绘
                {
                    data: chartData.data,
                    type: 'pictorialBar',
                    barMaxWidth: 'auto',
                    symbolPosition: 'end', // 位置在柱状图顶部
                    symbol: 'diamond', // 图形类型为菱形
                    symbolOffset: [0, '-50%'], // 下移一半,遮住柱状图顶部
                    symbolSize: [22, 10],
                    zlevel: 200, // 菱形图形显示在柱状图之上
                    itemStyle: {
                        color: {
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1.3,
                            type: 'linear',
                            global: false,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: '#16B2FF',
                                },
                                {
                                    offset: 1,
                                    color: 'rgba(90,74,219,0.8)'
                                },
                            ],
                        },
                    }
                },
            ],
        };
        curChart.setOption(exampleOption)
    }
    onMounted(() => {
        drawBar()
    })
</script>

<style scoped>

#symbolBar{
    width: 360px;
    height: 300px;
}
</style>

补充说明

  1. 以上内容是vite构建的vue3项目
  2. echarts版本5.5.1

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

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

相关文章

jenkins在使用pipeline时,为何没有方块形视图

项目场景&#xff1a; 安装完Jenkins时后&#xff0c;通过pipeline创建的项目任务。 问题描述 在立即构建后&#xff0c;没有显示每个阶段的视图。 原因分析&#xff1a; 原因是&#xff0c;刚安装的Jenkins&#xff0c;这个视图不是Jenkins自带的功能&#xff0c;而必须安装…

分班查询系统,老师们应该如何制作?

新学期的开始&#xff0c;作为教师&#xff0c;我们面临的一项关键任务就是组织分班。传统分班方法往往需要处理大量的数据&#xff0c;这个过程不仅耗时&#xff0c;而且容易出错。为了简化这一流程&#xff0c;提高效率&#xff0c;我们可以利用现代技术&#xff0c;创建一个…

不要再被骗了!电脑无法进入系统的原因可能是这个硬件坏了而已……

前言 前段时间小白在抖音上发了很多很多很多的视频&#xff0c;其中应该是有很多商家关注了小白。 然后就会出现很多很多很多的赚钱小门道…… 电脑开机没有显示&#xff1f;换显卡&#xff01; 电脑还是不开机&#xff1f;换CPU 电脑还是一样不开机…… 经过了一番大折腾…

三步学会使用WebSocekt

目录 一 什么是websocket 二 如何使用websocket 1.导入websocket的maven坐标 2.创建websocket的服务类 3.创建websocket的配置类 4.按需求实现业务逻辑 5.前端实现websocket 一 什么是websocket websocket和HTTP一样是基于TCP的一个通信协议。不过他是支持客户端和服务端…

鸿蒙开发Ability Kit(程序访问控制):【使用粘贴控件】

使用粘贴控件 粘贴控件是一种特殊的系统安全控件&#xff0c;它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后&#xff0c;用户点击该控件&#xff0c;应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景&#xff0c;避免弹窗…

JDK动态代理-AOP编程

AOPTest.java&#xff0c;相当于main函数&#xff0c;经过代理工厂出来的Hello类对象就不一样了&#xff0c;这是Proxy.newProxyInstance返回的对象&#xff0c;会hello.addUser会替换为invoke函数&#xff0c;比如这里的hello.addUser("sun", "13434");会…

将数据切分成N份,采用NCCL异步通信,让all_gather+matmul尽量Overlap

将数据切分成N份,采用NCCL异步通信,让all_gathermatmul尽量Overlap 一.测试数据二.测试环境三.普通实现四.分块实现 本文演示了如何将数据切分成N份,采用NCCL异步通信,让all_gathermatmul尽量Overlap 一.测试数据 1.测试规模:8192*8192 world_size22.单算子:all_gather:0.035…

数字化供应链:背景特点

​背景 1、外部环境 近年来&#xff0c;供应链脆弱性凸显&#xff0c;企业供应链压力难以缓解。 美国媒体针对美国零售联合会、美国服装和鞋类协会、美国供应链管理专业委员会等主体进行的一项供应链调查显示&#xff1a; 61%的供应链经理预计&#xff0c;供应链紊乱问题至少…

在IDEA中创建Maven项目

相关内容&#xff1a; Maven的安装与配置 在IDEA中配置Maven环境 IDEA中导入Maven项目 2023版IDEA创建Maven项目&#xff08;新版&#xff09; 1.打开IDEA&#xff0c;点击 文件 -> 新建 -> 项目 2.创建Maven项目 3.编写java文件并运行 在src -> java -> 创建…

xcode运行ios项目报错Sandbox: rsync.samba(24352) deny(1) file-write-create

xcode运行ios项目报错 Sandbox: rsync.samba(24352) deny(1) file-write-create 解决方案&#xff1a; Update your Xcode project build option ENABLE_USER_SCRIPT_SANDBOXING to No.

谷歌GenType:1分钟生成AI艺术字母表,小众但好用,完全免费!(附教程)

文章首发于公众号&#xff1a;X小鹿AI副业 大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 最近发现一个好玩的…

2024最新版Redis常见面试题包含详细讲解

Redis适用于哪些场景&#xff1f; 缓存分布式锁降级限流消息队列延迟消息队 说一说缓存穿透 缓存穿透的概念 用户频繁的发起恶意请求查询缓存中和数据库中都不存在的数据&#xff0c;查询积累到一定量级导致数据库压力过大甚至宕机。 缓存穿透的原因 比如正常情况下用户发…

维护Nginx千字经验总结

Hello , 我是恒 。 维护putty和nginx两个项目好久了&#xff0c;用面向底层的思路去接触 在nginx社区的收获不少&#xff0c;在这里谈谈我的感悟 Nginx的夺冠不是偶然 高速:一方面&#xff0c;在正常情况下&#xff0c;单次请求会得到更快的响应&#xff1b;另一方面&#xff0…

1996-2023年各省财政收支数据(无缺失)(地方财政一般预算收入、地方财政一般预算支出)

1996-2023年各省财政收支数据&#xff08;无缺失&#xff09;&#xff08;地方财政一般预算收入、地方财政一般预算支出&#xff09; 1、时间&#xff1a;1996-2023年 2、来源&#xff1a;国家统计局、统计年鉴、 3、指标&#xff1a;地方财政一般预算收入、地方财政一般预算…

51单片机第23步_定时器1工作在模式0(13位定时器)

重点学习51单片机定时器1工作在模式0的应用。 在51单片机中&#xff0c;定时器1工作在模式0&#xff0c;它和定时器0一样&#xff0c;TL1占低5位&#xff0c;TH1占高8位&#xff0c;合计13位&#xff0c;也是向上计数。 1、定时器1工作在模式0 1)、定时器1工作在模式0的框图…

SUPERVIVE无法联机、联机失败、联机报错的解决办法分享

SUPERVIVE是一款战术竞技游戏&#xff0c;核心玩法为多人大逃杀&#xff0c;40名玩家可以自愿或随机组成2或4人小分队&#xff0c;空降进入末日地图&#xff0c;一边苟着收集资源&#xff0c;一边武装自己&#xff0c;在生存区不断首夺的同时&#xff0c;努力战到最后&#xff…

pycharm中新建的临时python文件存放在哪里?

在pycharm中建立的临时python文件&#xff0c;从哪里可以找到呢&#xff1f; 1.我们打开cmd窗口&#xff0c;进入根目录&#xff0c;用dos命令“dir scratch*.py/a/s”进行查找&#xff0c;发现这些临时文件存放在Roaming\JetBrains\PyCharmCE2022.2\scratches 的目录里面 2.…

2Python的Pandas:读取数据

1.读取Excel文件 1.1.读取数据 import pandas as pd# Excel 文件的 URL 或本地路径 url "https://www.gairuo.com/file/data/dataset/team.xlsx"# 使用 Pandas 的 read_excel 函数读取数据 try:df pd.read_excel(url)print(df.head()) # 打印 DataFrame 的前几行…

在 Mac 上使用 本地 LLM 文本终结

我们可使用本地大型语言模型&#xff0c;如Mistral、Llama等&#xff0c;来给文本做总结&#xff0c;相比在线的 Kimi &#xff0c;ChatGPT&#xff0c; 我们不用担心数据泄露&#xff0c;因为整个操作都是在本地电脑完成的。 我们用 ollama 举例 首先安装 ollama https://ol…

观测云赋能「阿里云飞天企业版」,打造全方位监控观测解决方案

近日&#xff0c;观测云成功通过了「阿里云飞天企业版」的生态集成认证测试&#xff0c;并荣获阿里云颁发的产品生态集成认证证书。作为监控观测领域的领军者&#xff0c;观测云一直专注于提供统一的数据视角&#xff0c;助力用户构建起全球范围内的端到端全链路可观测服务。此…