vue echart 立体柱状图 带阴影

根据一个博主代码改编而来

<template>
  <div class="indexBox">
    <div id="chart"></div>
  </div>
</template>
    
<script  setup>
import * as echarts from "echarts";
import { onMounted } from "vue";
import imgsss from "@/assets/imgs/111.png";

onMounted(() => {
  create();
});

const colorArr = (arrList, type) => {
  let returnList = [];
  if (type == 1) {
    arrList.forEach((item) => {
      let info = {
        value: item.val,
        itemStyle: {
          normal: {
            borderColor: "#89e3ec",
            borderWidth: 2,
            color: item.starColor,
          },
        },
      };
      returnList.push(info);
    });
  } else {
    arrList.forEach((item) => {
      let infor = {
        value: item.val,
        itemStyle: {
          color: {
            // https://echarts.apache.org/zh/option.html#color
            //疑似根据整个demo尺寸,定位图片未知
            //   image: imgsss, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串
            //   repeat: 'repeat' // 是否平铺,可以是 'repeat-x', 'repeat-y', 'no-repeat'
            type: "linear",
            x: 0,
            x2: 1,
            y: 0,
            y2: 0,
            //给菱形上色
            colorStops: [
              {
                offset: 0,
                color: item.starColor,
              },
              {
                offset: 0.5,
                color: item.starColor,
              },
              {
                offset: 0.5,
                color: item.endColor,
              },
              {
                offset: 1,
                color: item.endColor,
              },
            ],
          },
        },
      };

      returnList.push(infor);
    });
  }

  return returnList;
};

function create() {
  var chartDom = document.getElementById("chart");
  var myChart = echarts.init(chartDom);
  var xData = ["周一", "周二", "周三", "周四", "周五"];
  // 完成数据数组
  var completeData = [320, 132, 101, 11, 90];
  var barWidth = 50;
  var showData = [];
  var otherData = [];

  let completeDataList = [
    { val: 320, starColor: "#3dc6cc", endColor: "#267A7B" },
    { val: 132, starColor: "#003EFF", endColor: "#262F7B" },
    { val: 131, starColor: "#6C29C1", endColor: "#4B267B" },
    { val: 111, starColor: "#DB00FF", endColor: "#74267B" },
    { val: 90, starColor: "#FF8A00", endColor: "#56401F" },
  ];
  completeData = colorArr(completeDataList);
  let otherDataList = [
    {
      val: 680,
      starColor: "rgba(53, 140, 144,0.5)",
      endColor: "rgba(31, 82, 86,0.5)",
    },
    {
      val: 868,
      starColor: "rgba(0, 62, 255,0.5)",
      endColor: "rgba(38, 47, 123,0.5)",
    },
    {
      val: 869,
      starColor: "rgba(108, 41, 193,0.5)",
      endColor: "rgba(75, 38, 123,0.5)",
    },
    {
      val: 889,
      starColor: "rgba(219, 0, 255,0.5)",
      endColor: "rgba(116, 38, 123,0.5)",
    },
    {
      val: 910,
      starColor: "rgba(255, 138, 0,0.5)",
      endColor: "rgba(86, 64, 31,0.5)",
    },
  ];
  otherData = colorArr(otherDataList);

  //  中间菱形
  let constDatasList = [
    { val: 320, starColor: "#56fdfd", endColor: "#3fc3c3" },
    { val: 132, starColor: "#5699fd", endColor: "#3f64c3" },
    { val: 131, starColor: "#8156fd", endColor: "#613fc3" },
    { val: 111, starColor: "#c24fe5", endColor: "#9c3bb2" },
    { val: 90, starColor: "#Fdce56", endColor: "#c3b63f" },
  ];
  let constDatas = colorArr(constDatasList);

  let showDataList = [
    {
      val: 1000,
      starColor: "rgba(53, 140, 144,0.7)",
      endColor: "rgba(31, 82, 86,0.5)",
    },
    {
      val: 1000,
      starColor: "rgba(0, 62, 255,0.7)",
      endColor: "rgba(38, 47, 123,0.5)",
    },
    {
      val: 1000,
      starColor: "rgba(108, 41, 193,0.7)",
      endColor: "rgba(75, 38, 123,0.5)",
    },
    {
      val: 1000,
      starColor: "rgba(219, 0, 255,0.7)",
      endColor: "rgba(116, 38, 123,0.5)",
    },
    {
      val: 1000,
      starColor: "rgba(255, 138, 0,0.7)",
      endColor: "rgba(86, 64, 31,0.5)",
    },
  ];
  showData = colorArr(showDataList, 1);

  var option = {
    //调整光标移入,展示数据的样式
    tooltip: {
      trigger: "axis",
      // formatter: function (params) {
      //   return (
      //     params[0].axisValue +
      //     ":" +
      //     "<br/>计划:" +
      //     planData[params[0].dataIndex] +
      //     "<br/>完成:" +
      //     completeData[params[0].dataIndex]
      //   );
      // },
    },
    title: {
      text: "单位(数量)",
      left: "3%",
      textStyle: {
        color: "#07D1FA",
        fontWeight: "normal",
        fontSize: 14,
      },
    },
    //调整图例
    legend: {
      data: ["计划", "完成"],
      show: false,
    },
    //调整图表距边框的距离
    grid: {
      left: "3%",
      right: "3%",
      top: "15%",
      bottom: "5%",
      containLabel: true,
    },
    // 调整图像x轴
    xAxis: {
      data: xData,
      axisTick: {
        show: false,
      },

      axisLabel: {
        textStyle: {
          fontFamily: "Microsoft YaHei",
          color: "#07D1FA",
          fontWeight: "400",
          fontSize: "14",
        },
      },
    },
    //调整图像y轴
    yAxis: {
      axisTick: {
        show: false,
      },
      axisLine: {
        show: false,
      },
      axisLabel: {
        color: "#07D1FA",
        // show: false,
      },
      splitLine: {
        show: true,
        lineStyle: {
          type: [5, 10],
          dashOffset: 5,
          color: "#07D1FA",
          width: 1,
          opacity: 0.21,
        },
      },
    },
    //图像的关键显示部分,此处5个拼接一个堆叠柱子,注意此处的调整
    series: [
      {
        z: 1,
        name: "计划",
        type: "bar",
        stack: "1",
        barWidth: barWidth,
        // stack: "总量",
        // color: color[0],
        data: completeData,
      },
      {
        z: 2,
        name: "完成",
        type: "bar",
        stack: "1",
        barWidth: barWidth,
        // stack: "总量",
        // color: color[1],
        data: otherData,
      },
      //柱形底部
      {
        z: 3,
        name: "项目",
        type: "pictorialBar",
        data: completeData,
        symbol: "diamond",
        symbolOffset: ["0%", "60%"],
        symbolSize: [barWidth, 10],

        // itemStyle: {
        //   normal: {
        //     color: function (params) {
        //       let arr = ["#3dc6cc", "#003EFF", "#6C29C1", "#DB00FF", "#FF8A00"];
        //       console.log(arr[params.dataIndex]);
        //       let ass = arr[params.dataIndex];
        //       if (params.dataIndex == 0) {
        //         return "#DB00FF";
        //       }
        //       if (params.dataIndex == 1) {
        //         return "#003EFF";
        //       }
        //     },
        //   },
        // },
        tooltip: {
          show: false,
        },
      },
      {
        z: 3,
        name: "1",
        type: "pictorialBar",
        data: constDatas,
        symbol: "diamond",
        symbolPosition: "end",
        symbolOffset: ["0%", "-50%"],
        symbolSize: [barWidth, 10],
      },
      {
        z: 5,
        name: "项目",
        type: "pictorialBar",
        symbolPosition: "end",
        data: showData,
        symbol: "diamond",
        symbolOffset: ["0%", "-50%"],
        symbolSize: [barWidth, (10 * barWidth) / barWidth],
        tooltip: {
          show: false,
        },
        // itemStyle: {
        //   normal: {
        //     label: {
        //       formatter: "{c}",
        //       show: true,
        //       position: "top",
        //       textStyle: {
        //         fontWeight: 400,
        //         fontSize: "13",
        //         color: "#F2F7FA",
        //         lineHeight: 20,
        //       },
        //     },
        //   },
        // },
      },
    ],
  };
  option && myChart.setOption(option);
}
</script>

    
    
<style scoped lang="scss">
.indexLeft {
  width: 360px;
  height: 1016px;
  margin-top: 64px;
  background: linear-gradient(90deg,
      #031425 0%,
      rgba(3, 20, 37, 0.5) 50%,
      rgba(3, 20, 37, 0) 100%);
}

#chart {
  width: 700px;
  height: 300px;
}
</style>
    

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

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

相关文章

二叉树-堆(9.10)

接上节内容 目录 3.3 堆的实现 3.2.1 堆向下调整算法 3.2.2大堆的创建 3.4 堆的应用 3.4.1 堆排序 3.4.2 TOP-K问题 ​编辑 二叉树的性质 练习 4.二叉树链式结构的实现 4.1 前置说明 4.2二叉树的遍历 4.2.1 前序、中序以及后序遍历 4.3 节点个数以及高度等 4.3…

算不上最全,但都是必备——Mybatis这些不会不行啊

Mybatis篇 ORM&#xff08;Object Relational Mapping&#xff09;&#xff0c;对象关系映射&#xff0c;是一种为了解决关系型数据库数据与简单Java对象&#xff08;POJO&#xff09;的映射关系的技术。简单的说&#xff0c;ORM是通过使用描述对象和数据库之间映射的元数据&am…

天气越来越寒冷,一定要注意保暖

你们那里下雪了吗&#xff1f;听说西安已经下了今年的第一场雪&#xff0c;我们这里虽然隔了几百公里&#xff0c;但是只下雨没有下雪&#xff0c;不过气温是特别的冷&#xff0c;尤其是对我们这些上班族和上学的人而言&#xff0c;不管多冷&#xff0c;不管刮风下雨&#xff0…

根据店铺ID或店铺昵称或店铺链接获取阿里巴巴店铺所有商品数据接口|阿里巴巴店铺整店商品数据接口|阿里巴巴API接口

阿里巴巴店铺所有商品数据接口是阿里巴巴开放平台提供的API接口之一&#xff0c;它可以帮助开发者获取到店铺内所有商品的信息&#xff0c;包括商品的ID、标题、价格、图片、链接等。通过该接口&#xff0c;开发者可以快速地获取到大量的商品数据&#xff0c;并进行进一步的数据…

自定义注解实现服务的动态开关

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 &#x1f9d1;‍&#x1f4bb;&#x1f9d1;‍&#x1f4bb;&#x1f9d1;‍&#x1f4bb;Make things differe…

matlab语言的由来与发展历程

MATLAB语言的由来可以追溯到1970年代后期。当时&#xff0c;Cleve Moler教授在New Mexico大学计算机系担任系主任&#xff0c;他为了LINPACK和EISPACK两个FORTRAN程序集开发项目提供易学、易用、易改且易交互的矩阵软件而形成了最初的MATLAB。 1984年&#xff0c;MATLAB推出了…

JVM 内存区域

JVM内存结构模型 程序计数器&#xff1a; 1.线程私有的&#xff0c;是一块较小的内存空间&#xff0c;当前线程所执行的字节码的行号指示器 2.每个线程都有一个独立的程序计数器&#xff0c;各线程之间程序计数器互不影响&#xff0c;独立存储 3.此内存区域是唯一一个在java虚拟…

C++ vector中capacity()和size() 的区别

文章目录 1 capacity()和size() 介绍2 vector满了之后&#xff0c;capacity()会自动了扩充为原来的2倍 &#xff1f; 1 capacity()和size() 介绍 size是指容器当前拥有元素的个数&#xff0c; capacity是指容器在必须分配新的存储空间之前可以存放的元素总数。 如vector<i…

Linux常用命令——bzgrep命令

在线Linux命令查询工具 bzgrep 使用正则表达式搜索.bz2压缩包中文件 补充说明 bzgrep命令使用正则表达式搜索“.bz2”压缩包中文件&#xff0c;将匹配的行显示到标注输出。 语法 bzgrep(参数)参数 搜索模式&#xff1a;指定要搜索的模式&#xff1b;.bz2文件&#xff1a…

【教3妹学编程-算法题】K 个元素的最大和

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开发。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;阳光明媚、万里无云、秋高气爽&#xff0c;适合秋游。 2哥&#x…

【前端开发】JS Vue React中的通用递归函数

目录 前言 一、递归函数的由来 二、功能实现 1.后台数据 2.处理数据 3.整体代码 总结 &#x1f642;博主&#xff1a;冰海恋雨. &#x1f642;文章核心&#xff1a;【前端开发】JS Vue React中的通用递归函数 前言 大家好&#xff0c;今天和大家分享一下在前端开发中j…

基于springboot实现校园医疗保险管理系统【项目源码】

基于springboot实现校园医疗保险管理系统演示 系统开发平台 在线校园医疗保险系统中&#xff0c;Eclipse能给用户提供更多的方便&#xff0c;其特点一是方便学习&#xff0c;方便快捷&#xff1b;二是有非常大的信息储存量&#xff0c;主要功能是用在对数据库中查询和编程。其…

旺店通·企业版对接打通金蝶云星空查询调拨单接口与分布式调入单新增接口

旺店通企业版对接打通金蝶云星空查询调拨单接口与分布式调入单新增接口 源系统:旺店通企业版 旺店通是北京掌上先机网络科技有限公司旗下品牌&#xff0c;国内的零售云服务提供商&#xff0c;基于云计算SaaS服务模式&#xff0c;以体系化解决方案&#xff0c;助力零售企业数字化…

msys2 + MSVC(VS2019)编译ffmpeg6.0源码

以前使用的v1.2版&#xff0c;很多功能和使用方法发生了变化&#xff0c;需要重新编译新的ffmpeg版。 编译环境: windows 10 , VS2019, MSYS2 1. msys2 下载安装 MSYS2 , https://www.msys2.org/ 2. msys2 环境配置打开 msys2 2.1 安装相关软件 然后输入以下命令安装&…

gmpy2 GMP is_prime函数底层c代码分析

偶然看到一篇paper&#xff08;2018年发表&#xff09;&#xff0c;说GMP中的素性检测使用的是单独的Miller_Rabin方法&#xff0c;单独的Miller_Rabin素性检测会存在部分安全问题&#xff08;低概率&#xff09;&#xff0c;然后突然想求证一下最新版本的GMP中是否进行了修改。…

Python如何使用Matplotlib模块的pie()函数绘制饼形图?

Python如何使用Matplotlib模块的pie函数绘制饼形图&#xff1f; 1 模块安装2 实现思路3 pie()函数说明4 实现过程4.1 导入包4.2 定义一个类4.3 读取数据并处理4.4 定义饼图绘制方法 5 完整源码 1 模块安装 先安装matplotlib&#xff1a; pip install matplotlib安装numpy模块…

Linux Docker 图形化工具 Portainer远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具&#xff0c;可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

exsi的安装和配置

直接虚拟真实机 vcent server 管理大量的exsi SXI原生架构模式的虚拟化技术&#xff0c;是不需要宿主操作系统的&#xff0c;它自己本身就是操作系统。因此&#xff0c;装ESXI的时候就等同于装操作系统&#xff0c;直接拿iso映像(光盘)装ESXI就可以了。 VMware vCente…

在Vue.js中,什么是slot(插槽)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

2.6 Windows驱动开发:使用IO与DPC定时器

本章将继续探索驱动开发中的基础部分&#xff0c;定时器在内核中同样很常用&#xff0c;在内核中定时器可以使用两种&#xff0c;即IO定时器&#xff0c;以及DPC定时器&#xff0c;一般来说IO定时器是DDK中提供的一种&#xff0c;该定时器可以为间隔为N秒做定时&#xff0c;但如…