echart 柱状图-bar

业务场景一

效果

业务组件调用代码

<template>        
<barCom 
:domId="1" 
:title="barComProps.title" 
:xAxisData="barComProps.xAxisData"
:yAxisProps="barComProps.yAxisProps" 
:seriseData="barComProps.seriseData"
:emphasisItemStyle="barComProps.emphasisItemStyle" 
:itemStyle="barComProps.itemStyle"
:stackFlag="barComProps.stackFlag"
:stackLabel="barComProps.stackLabel" 
:borderRadius="barComProps.borderRadius"
:formatCallBack="barComProps.formatCallBack">
</barCom>
</template><script lang="ts" setup>
import barCom from "../../components/echartsCom/barCom.vue"const barComProps = reactive({title: "柱状图",xAxisData: ['点', '击', '柱', '子', '或', '者', '两', '指', '在'],yAxisProps: {type: "value",splitLine: {//是否显示 y轴横线show: false},show: false},seriseData: [220, 182, 191, 234, 290, 330, 310, 120, 362],//数据itemStyle: [//柱状图的默认颜色 渐变{ offset: 0, color: '#f00' },{ offset: 0.5, color: '#188df0' },{ offset: 1, color: '#188df0' }],emphasisItemStyle: [//柱状图的高亮颜色 渐变{ offset: 0, color: '#f00' },{ offset: 0.7, color: '#2378f7' },{ offset: 1, color: '#83bff6' }],stackFlag: true,//柱状图是否显示每个柱条的数量stackLabel: {show: true,position: 'top',color: "#f00"},borderRadius: 0,formatCallBack: (params: any) => {if (!params || params.length == 0 || !Array.isArray(params)) returnlet fromatStr = ""params.forEach((ele: any) => {fromatStr += '<div style="border-bottom:1px solid #ccc;"><span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + ele.color + '"></span>' + ele.data + "</div>"})return fromatStr}
})</script>

业务场景二

效果

业务组件调用代码

<template>
<barCom:domId="2" :title="barComPropsSimple.title" 
:xAxisData="barComPropsSimple.xAxisData":yAxisProps="barComPropsSimple.yAxisProps" 
:seriseData="barComPropsSimple.seriseData":emphasisItemStyle="barComPropsSimple.emphasisItemStyle" :itemStyle="barComPropsSimple.itemStyle"
:stackFlag="barComPropsSimple.stackFlag" 
:stackLabel="barComPropsSimple.stackLabel"
:borderRadius="barComPropsSimple.borderRadius" :formatCallBack="barComPropsSimple.formatCallBack">
</barCom>
</template>
<script lang="ts" setup>
import barCom from "../../components/echartsCom/barCom.vue"
const barComPropsSimple = reactive({title: "柱状图",xAxisData: ['点', '击', '柱', '子', '或', '者', '两', '指', '在'],yAxisProps: {type: "value",splitLine: {//是否显示 y轴横线show: true},show: true},seriseData: [220, 182, 191, 234, 290, 330, 310, 120, 362],//数据itemStyle: "#188df0",emphasisItemStyle: '#f00',// emphasisItemStyle: [//柱状图的高亮颜色 渐变//   { offset: 0, color: '#f00' },//   { offset: 0.7, color: '#2378f7' },//   { offset: 1, color: '#83bff6' }// ],stackFlag: false,//柱状图是否显示每个柱条的数量stackLabel: {show: false,},borderRadius: 10,formatCallBack: (params: any) => {if (!params || params.length == 0 || !Array.isArray(params)) returnlet fromatStr = ""params.forEach((ele: any) => {fromatStr += '<div style="border-bottom:1px solid #ccc;"><span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + ele.color + '"></span>' + ele.data + "</div>"})return fromatStr}
})</script>

业务场景三

效果

业务组件调用代码

<template>
<barCom :domId="3" :title="barComPropsHorizontal.title" :xAxisProps="barComPropsHorizontal.xAxisProps":xAxisData="barComPropsHorizontal.xAxisData" :yAxisData="barComPropsHorizontal.yAxisData":yAxisProps="barComPropsHorizontal.yAxisProps" :seriseData="barComPropsHorizontal.seriseData":emphasisItemStyle="barComPropsHorizontal.emphasisItemStyle" :itemStyle="barComPropsHorizontal.itemStyle":stackFlag="barComPropsHorizontal.stackFlag" :stackLabel="barComPropsHorizontal.stackLabel":borderRadius="barComPropsHorizontal.borderRadius" :formatCallBack="barComPropsHorizontal.formatCallBack"></barCom>
</template>
<script lang="ts" setup>
import barCom from "../../components/echartsCom/barCom.vue"
const barComPropsHorizontal = reactive({title: "柱状图-横向",xAxisProps: {type: "value",boundaryGap: [0, 0.01]},xAxisData: [],yAxisProps: {type: "category",// boundaryGap: false,},yAxisData: ['点', '击', '柱', '子', '或', '者', '两', '指', '在'],seriseData: [220, 182, 191, 234, 290, 330, 310, 120, 362],//数据itemStyle: [//柱状图的默认颜色 渐变{ offset: 0, color: '#f00' },{ offset: 0.5, color: '#188df0' },{ offset: 1, color: '#188df0' }],emphasisItemStyle: [//柱状图的高亮颜色 渐变{ offset: 0, color: '#f00' },{ offset: 0.7, color: '#2378f7' },{ offset: 1, color: '#83bff6' }],stackFlag: false,//柱状图是否显示每个柱条的数量stackLabel: {show: false,},borderRadius: 10,formatCallBack: (params: any) => {if (!params || params.length == 0 || !Array.isArray(params)) returnlet fromatStr = ""params.forEach((ele: any) => {fromatStr += '<div style="border-bottom:1px solid #ccc;"><span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + ele.color + '"></span>' + ele.data + "</div>"})return fromatStr}
})</script>

基础组件

<template><div style="width: 100%; height: 100%" :id="'BarEchartDom' + propsVal.domId"></div>
</template><script setup lang='ts'>
import * as echarts from "echarts";
let myChart: any = null
const propsVal = defineProps({domId: {//加个唯一标识 必须是唯一的type: Number,default: Math.random()},title: {type: String,default: '柱状图'},legendDataList: {//图例组件的数据type: Array,default: []},legendProps: {//图例组件的基本配置type: Object,default: {right: 30,top: 30,itemHeight: 10,itemGap: 10,icon: "circle",//可选 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'textStyle: {//文字颜色color: "#333333"}}},grid: {//网格的配置type: Object,default: {top: "15%",//组件距离容器 上侧 的距离left: "3%",//组件距离容器 左侧 的距离right: "4%",//组件距离容器 右侧 的距离bottom: "3%",//组件距离容器 下侧 的距离containLabel: true,//组件距离容器 上侧 的距离}},FeatureList: {//工具配置项显示 type: Array,default: []//['saveAsImage','restore','dataView',"dataZoom",'magicType','brush']},seriseData: {type: Array,default: []},xAxisData: {//x 坐标轴数据 type: Array,default: []//'value' 数值轴,适用于连续数据// 'category'// time 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度// 'log' 对数轴。适用于对数数据。},xAxisProps: {//x 坐标轴配置type: Object,defualt: {type: "category",boundaryGap: false,}},yAxisProps: {//y 坐标轴配置type: Object,default: {type: "value",}},yAxisData: {//x 坐标轴数据 type: Array,default: []//'value' 数值轴,适用于连续数据// 'category'// time 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度// 'log' 对数轴。适用于对数数据。},itemStyle: {//柱状图的默认颜色 渐变type: Object,default: {}},emphasisItemStyle: {//柱状图的高亮颜色 渐变type: Object,default: {}},stackFlag: {//是否显示柱状图的 柱条顶部数据type: Boolean,default: false},stackLabel: {// 柱条顶部数据 样式type: Object,default: {}},borderRadius: {//显示圆角type: Number,default: 0},formatCallBack: {//提示数据格式化type: Function,default: () => { }}
})
onMounted(() => {const BarEchartDomEl = document.getElementById("BarEchartDom" + propsVal.domId);myChart = echarts.init(BarEchartDomEl);console.log("mychart-bar-003", option)myChart.setOption(option);})
const handleSeriesData = () => {let seriesData = []let resultItemColor = Array.isArray(propsVal.itemStyle) ? new echarts.graphic.LinearGradient(0, 0, 1, 1, propsVal.itemStyle) : propsVal.itemStylelet resultEmphasisColor = Array.isArray(propsVal.emphasisItemStyle) ? new echarts.graphic.LinearGradient(0, 0, 1, 1, propsVal.emphasisItemStyle) : propsVal.emphasisItemStyle// LinearGradient(0, 0, 1, 1, 控制渐变方向const item: any = {type: 'bar',showBackground: false,stack: 'Total',// label: {//     show: true,//     position: 'top'// },itemStyle: {borderRadius: propsVal.borderRadius,color: resultItemColor},emphasis: {itemStyle: {color: resultEmphasisColor}},data: propsVal.seriseData}item.label = propsVal.stackLabelseriesData.push(item)return seriesData
}
const option = {tooltip: {trigger: "axis",},title: {text: propsVal.title,},xAxis: {data: propsVal.xAxisData,...propsVal.xAxisProps},yAxis: {...propsVal.yAxisProps,data: propsVal.yAxisData},series: handleSeriesData(),formatter: function (params: any) {console.log("parmas", params)return propsVal.formatCallBack(params)}
};
</script><style></style>

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于FactoryBean、实例工厂、静态工厂创建Spring中的复杂对象

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

在 vue3 中使用 Recorder 实现录音并上传(mp3、wav)兼容 PC 和移动端

一、Recorder 介绍 使用 Recorder插件可以在网页中进行录音。生成 blob 文件并可以自定义上传&#xff0c;同时&#xff0c;录音过程中会显示可视化波形&#xff0c;同时能够做到兼容PC端、Android、和iOS&#xff0c;十分好用&#xff01; Recorder github 首页 插件效果展…

深度学习回顾:七种网络

一、说明 本文 揭开CNN、Seq2Seq、Faster R-CNN 和 PPO &#xff0c;以及transformer和humg-face— 编码和创新之路。对于此类编程的短小示例&#xff0c;用于对照观察&#xff0c;或做学习实验。 二、CNN网络示例 2.1 CNN用mnist数据集 CNN 专为图像处理而设计&#xff0c;包…

学习笔记-瑞吉外卖项目实战(一)

软件开发整体介绍 软件开发流程 角色分工 软件环境 瑞吉外卖项目介绍 项目介绍 产品原型介绍 技术选型 功能架构 角色 开发环境搭建 数据 创建database reggie&#xff0c;在里面创建表&#xff1a; maven 创建springboot项目并导入相关依赖坐标&#xff1a; 我们可以在项目…

基于SSM的论文管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

wmvcore.dll丢失怎么办?解决电脑出现wmvcore.dll丢失问题5个方法

wmvcore.dll缺失5个解决方法与wmvcore.dll丢失原因及文件介绍 引言&#xff1a; 在日常使用电脑的过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是wmvcore.dll缺失。wmvcore.dll是Windows Media Video编码解码相关动态链接库文件之一&#xff0c;它对…

docker安装Sentinel zipkin

文章目录 引言I Sentinel安装1.1 运行容器1.2 DOCKERFILE 参考1.3 pom 依赖1.4 .yml配置(整合springboot)II 资源保护2.1 Feign整合Sentinel2.2 CommonExceptionAdvice:限流异常处理类III zipkin引言 消息服务和请求第三方服务可不配置Sentinel。 I Sentinel安装 Sentinel …

Python Pyvis库:可视化复杂网络结构的利器

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享 Python Pyvis库&#xff1a;可视化复杂网络结构的利器&#xff0c;全文4000字&#xff0c;阅读大约12钟。 在数据科学和网络分析领域&#xff0c;理解和可视化复杂网络结构是…

仿制剧情吧网站源码 帝国CMS剧情介绍模板

帝国CMS7.5剧情介绍模板&#xff0c;仿制剧情吧网站的风格。该模板并非用于直接播放电影&#xff0c;而是用文字描述剧情&#xff0c;同时包含手机版。本站免费分享供站长学习研究使用。采用伪静态技术&#xff0c;无需生成HTML。出于美观考虑&#xff0c;自带数据仅供本地环境…

springboot集成springsecurity

转载自&#xff1a;www.javaman.cn 1、整合springsecurity 添加pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency>2、springsecurity认证授权流程…

每日一练:简易计算器

1. 题目 设计实现一个简易的计算器&#xff0c;可以进行加减乘除的计算。可以考虑通过GUI和命令行输入等方式实现。 2. 设计思路 创建一个简单的用户界面&#xff0c;可以使用 Python 的 Tkinter模块。在界面上放置按钮&#xff0c;每个按钮代表一个数字、运算符或其他功能。…

ubuntu22.04新机使用(换源,下载软件,安装显卡驱动,锁屏长亮)

换源 国内有很多Ubuntu的镜像源&#xff0c;包括阿里的、网易的&#xff0c;还有很多教育网的源&#xff0c;比如&#xff1a;清华源、中科大源。推荐使用中科大源&#xff0c;快得很。 /etc/apt/sources.list编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前…