vue echart 立体柱状图 带阴影

news2024/11/24 4:46:25

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

<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>
    

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

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

相关文章

【Python基础】文件传输协议

&#x1f308;欢迎来到Python专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C、Linux系统编程、计算机网络、数据结构、Mys…

vim批量多行缩进调整

网上其他教程&#xff1a; ctrl v 或者 v进行visual模式按方向键<&#xff0c;>调整光标位置选中缩进的行Shift > &#xff08;或者 Shift < &#xff09;进行左右缩进。 我只想说&#xff0c;乱七八糟&#xff0c;根本不管用 本文教程&#xff1a; 增加缩进…

mac项目流程管理 OmniPlan Pro 4 中文最新 for mac

在OmniPlan Pro 4中&#xff0c;用户可以创建详细的项目计划&#xff0c;包括任务、资源、时间表、预算等设置。同时&#xff0c;软件支持任务管理&#xff0c;让用户能够创建、编辑和删除任务&#xff0c;设置任务的优先级、依赖关系、持续时间、起始日期等。对于资源管理&…

搬家快递服务预约小程序的作用是什么

无论家庭还是企业办公&#xff0c;不少人都有搬家快递服务需求&#xff0c;尤其是近些年类似服务市场需求规模增长迅速。而在实际经营中&#xff0c;行业商家从业者也面临一些经营难题&#xff1a; 搬家公司的服务一般主要针对同省用户&#xff0c;同城需求较高&#xff0c;然…

Python学习:同步异步阻塞与非阻塞

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 一、状态介绍 在了解其他概念之前&#xff0c;我们首先要了解进程的几个状态。 在程序运行的过程中&#xff0c;由于被操作系统的调度算法控制&#xff0c;程序会进入几个状态&#xff1a;就绪&#xff0c;运行和阻塞。 就绪…

Python logging模块打印日志

logging打印日志&#xff0c;文件名为log_config.py import logging import sysdef setup_logger(log_file, error_log_file):# 创建一个日志记录器logger logging.getLogger(__name__)logger.setLevel(logging.DEBUG) # 设置全局日志级别为 DEBUG# 创建一个文件处理器&…

赛宁网安获评“铸网-2023”江西省实网应急演练优秀支撑单位

近日&#xff0c;南京赛宁信息技术有限公司&#xff08;赛宁网安&#xff09;获得了江西省工业和信息化厅颁发的“优秀支撑单位”荣誉。 该荣誉表彰是对赛宁网安在“铸网-2023”江西省工业领域网络安全实网应急演练中提供全程技术支撑能力的认可。 本次实网应急演练聚焦工业企…

VISA机制

需要用到VISA的3种机制&#xff1a;属性机制、锁定机制和事件机制。以写资源为例&#xff0c;3种机制的作用如图 &#xff08;1&#xff09;属性机制 属性机制用来控制资源的各种属性&#xff0c;这些属性分为两种&#xff1a;只读属性和可读可写属性。 &#xff08;2&#xf…

轻量封装WebGPU渲染系统示例<30>- 绘制线段(源码)

原理说明&#xff1a; WebGPU提供了绘制基本线条非机制&#xff0c;只要render pipeline primitive对应的 topology属性指定为line-list或者line-strip即可绘制对应的线条。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxg…

【移远QuecPython】EC800M物联网开发板的音乐播放(PWM蜂鸣器播放生日快乐歌,Sound模块播放音频)

【移远QuecPython】EC800M物联网开发板的音乐播放&#xff08;PWM蜂鸣器播放生日快乐歌&#xff0c;Sound模块播放音频&#xff09; 效果&#xff1a; 【移远QuecPython】EC800M开发板外置功放重金属和PWM音调&#xff08;BUG调试记录&#xff09; 文章目录 PWM蜂鸣器播放播放…

如何定制开发软件 App?|小程序网站搭建

如何定制开发软件 App&#xff1f;|小程序网站搭建 随着移动互联网的快速发展&#xff0c;定制开发软件 App 成为了许多企业和个人的需求。无论是为了满足特定业务需求&#xff0c;还是为了提升用户体验&#xff0c;定制开发软件 App 都可以帮助我们实现目标。下面&#xff0c;…

如何将 .SQL 文件导入到 IDEA自带的MySQL中

首先连接数据库新建数据库右键选择该数据库选择如下&#xff1a;找到对应的sql文件即可

质量管理工作难做,为什么还有那么多人还继续做?

理解质量管理的挑战 在当今商业环境中&#xff0c;质量管理工作是一项充满挑战的使命。然而&#xff0c;尽管面对种种困难&#xff0c;却有着越来越多的人愿意踏上这条坎坷之路。为何质量管理工作如此艰难&#xff0c;却依旧吸引无数人投身其中呢&#xff1f; 内外动因交融 内…

高通发布骁龙X Elite Oryon CPU /GitHub出现一款开源项目,让用户“拥有”更大的GPU内存|魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; &#x1f525;资讯预览 高通发布骁龙X Elite Oryon CPU&#xff0c;性能超越苹果和英特尔&#xff0…

如何使用Echarts

以umi为例 首先是下载两个插件&#xff08;echarts和echarts-for-react&#xff09; npm npm install --save echarts-for-react npm install echarts yarn yarn add echarts-for-react yarn add echarts 接下来是在tsx或jsx中引入使用 import ReactEcharts from "echa…

运输服务预约小程序的效果如何

市场中运输服务的需求非常高&#xff0c;比如常见的汽车出境、进出口代理、仓储服务、集装箱运输、展会运输等&#xff0c;由于相关从业者多&#xff0c;所以在运输服务总是在市场中有着一席之地。 以前的运输企业拓客转化方式大多是同地区的单子&#xff0c;很难多渠道拓展&a…

基于Nvidia Jetson orin nx的 YoloV7 tensorRt加速

准备环境 安装jetPack组件 Jetpack 是 Nvidia为 Jetson系列开发板开发的一款软件开发包&#xff0c;常用的开发工具基本都包括了&#xff0c;并在在安装 Jetpack的时候&#xff0c;会自动的将匹配版本的CUDA、cuDNN、TensorRT等。官方提供套件中默认已经安装&#xff0c;可以通…

基于rosbridge 与业务系统长链接网关架构设计

技术背景&#xff1a; 业务系统&#xff1a;管理机器人&#xff0c;机器人任务执行等等 机器人使用是ros1 &#xff0c;业务系统与机器人交互使用rosbridge, rosbridge 就是websocket 链接&#xff0c;所以就有了如下的一些架构思想 架构图 客户端 客户端主要分为app端、pc端…

又双叒!宏电5G RedCap工业智能网关获得首个基于RedCap终端场景的华为技术认证

近日&#xff0c;宏电Z2 V20 5G RedCap工业智能网关率先通过华为OpenLab全球开放实验室的系列严格验证流程&#xff0c;完成基于华为RedCap终端场景的兼容性测试&#xff0c;首个获得华为Cloud Open Labs授予的HUAWEI COMPATIBLE证书及其相关认证徽标使用权。 宏电5G RedCap工业…

SAP-PP-MRP-策略组流程演示

策略组10 按库存生产&#xff0c;按库存生产就不考虑其他了&#xff0c;说明库存不足&#xff0c;或者说预测下一阶段销售&#xff0c;库存不足了&#xff0c;那么就需要提前安排生产。 策略组10按库存生产操作流程TCODE操作说明注意事项MM01创建物料成品MM01创建物料原材料C…