echarts柱状图添加白色柱状图背景+滚动+柱状顶部添加横线

news2024/10/6 6:42:28

echarts柱状图添加白色柱状图背景+滚动
在这里插入图片描述

<template>
  <div class="stream-water-wrapper">

    <div id="biologybgchart" class="bck-chart"></div>

    <div id="biologychart" class="biology-chart"></div>

  </div>
</template>

<script>
export default {
  name: 'streamwater',
  data() {
    return {
      biologyChart: '',
      bckchart: '',
      data: [23, 32, 41, 16, 27, 25, 35],
      xAxis: [],
      currentArr: []
    }
  },
  mounted() {
    // this.initBiologyChart()
    this.getData()
  },
  methods: {
    getData() {
      this.axios.post(this.api.getRiverFlow)
        .then((response) => {
          let res = response.data;
          if (res.code == 1) {
            this.data = Object.values(res.result)
            this.xAxis = Object.keys(res.result)
            this.currentArr.push(this.data[0])
            this.currentArr.push(this.data[1])
            this.currentArr.push(this.data[2])
            this.currentArr.push(this.data[3])

          } else {
            this.$message.error(res.message)
          }
        }).finally(() => {
          this.initBiologyChart()
          this.initBiologyBck()
        })
    },
    // 初始化
    initBiologyChart() {
      this.biologyChart = this.$echarts.init(document.getElementById('biologychart'))
      var option = {
        xAxis: {
          type: 'category',
          data: this.xAxis,
          axisLine: {       //x轴显示
            "show": true,
          },
          axisTick: {
            "show": false   //去掉x轴刻度线
          },
          //坐标轴颜色
          axisLine: {
            lineStyle: {
              // background: rgba(186,231,255,0.4);
              color: 'rgba(186,231,255,0.4)',
              width: 2
            }
          },
          // x轴文字旋转
          axisLabel: {
            rotate: 0,
            interval: 0,
            interval: 0,  //设置 X 轴数据间隔几个显示一个,为0表示都显示 
            color: "rgba(230,247,255,0.5)"  //坐标轴的文本颜色
          },
        },
        yAxis: {
          name: 'ind/m³',
          type: 'value',
          // interval: 10,
          min: 0, // 配置 Y 轴刻度最小值
          // max: 400,  // 配置 Y 轴刻度最大值
          // splitNumber:10,  // 配置 Y 轴数值间隔
          nameTextStyle: {
            color: 'rgba(230,247,255,0.5)', //  字体颜色
            fontSize: 12, //  字体大小
            fontWeight: '400',
            //关键代码
            padding: [0, 0, -20, -30] //标题位置调整 上 右 下 左
          },
          splitLine: {           //分割线
            show: true,     //控制分割线是否显示
            lineStyle: {       //分割线的样式
              color: ['rgba(230,247,255,0.2)'],
              width: 1,
              type: 'dashed'
            }
          },
          axisLine: {       //y轴不显示
            "show": false
          },
          axisTick: {       //y轴刻度线不显示
            "show": false
          },
          axisLabel: {
            showMaxLabel: false,
            color: "rgba(230,247,255,0.5)", //刻度线标签颜色
            fontSize: 14,
            // formatter: function (value) {
            //   if (value / 100 % 2 === 1) {
            //     return value;
            //   } else {
            //     return ''
            //   }
            // }
          },

        },
        grid: {          //设置图表显示在区域的哪个位置,控制图表的位置,可以是具体数值或者百分比
          left: '20px',
          right: '0px',
          bottom: '10px',
          top: '20px',
          containLabel: true,   //containLabel(grid 区域是否包含坐标轴的刻度标签,默认不包含)为true的情况下,无法使图表紧贴着画布显示,但可以防止标签标签长度动态变化时溢出容器或者覆盖其他组件,将containLabel设置为false即可解决
        },
        //滚动条样式
        dataZoom: [

          {

            id: 'biologychart',

            type: 'slider',

            show: true,

            // start: 0,//默认为0

            // end: 50,//默认为100

            startValue: 0, // 从头开始。

            endValue: 3, // 一次性展示6个。

            xAxisIndex: [0],

            handleSize: 0,//滑动条的 左右2个滑动条的大小

            height: 4,//组件高度

            bottom: 0,//右边的距离

            borderColor: "#e3e3e3",

            fillerColor: '#51B7F9',

            borderRadius: 10,

            backgroundColor: '#e3e3e3',//两边未选中的滑动条区域的颜色

            showDataShadow: false,//是否显示数据阴影 默认auto

            showDetail: false,//即拖拽时候是否显示详细数值信息 默认true

            realtime: true, //是否实时更新

            filterMode: 'filter',

            // zlevel: 10,

          },
          //以下重点: 让鼠标滚动从缩放变成移动
          {

            type: 'inside',

            xAxisIndex: [0],

            zoomOnMouseWheel: false, //滚轮不触发缩放

            moveOnMouseMove: true,   //鼠标移动触发平移

            moveOnMouseWheel: true,  //鼠标滚轮触发平移

          },

        ],
        series: [
          {
            data: this.data,
            type: 'bar',
            hoverAnimation: false,
            animation: false,
            emphasis: {
              disabled: true,
            },
            barWidth: 12, //设置柱子宽度
            color: 'blue',
            // showBackground: true,
            // backgroundStyle: {
            //   color: 'rgba(255,255,255,0.1)',
            // },
            label: {  //在柱状图上显示数据
              show: true,
              position: 'top',
              color: '#fff',
              fontWeight: 500,
              fontSize: 10,
            },
            markPoint: {
              symbol: 'rect',
              symbolSize: '15',
            },
            itemStyle: {  // 柱状图渐变
              color: {
                type: 'linear',
                x: 0,  //右
                y: 0,  //下
                x2: 0,  //左
                y2: 1,  //上
                colorStops: [
                  {
                    offset: 0,
                    color: '#1A96F9' // 0% 处的颜色
                  },
                  {
                    offset: 1,
                    color: '#4CECFF' // 100% 处的颜色
                  }
                ]
              },

            },
          },
          {		//顶部的白色横杠
            type: 'pictorialBar',
            symbol: 'rect',
            symbolSize: [12, 2],
            symbolOffset: [0, -2],
            symbolPosition: 'end',
            data: this.data,
            itemStyle: {
              color: '#00BBFF',
            },
          },
        ],

      };
      this.biologyChart.setOption(option);

      let that = this;
      // 当滑动条变化时触发
      this.biologyChart.on('datazoom', function (params) {
        that.currentArr = []
        that.$nextTick(() => {
          let xAxis = that.biologyChart.getModel().option.dataZoom[0];
          let startrang = xAxis.startValue
          let endrang = xAxis.endValue
          let i = 0
          for (i; i++; i < 4) {
            that.currentArr.push(that.data[startrang + i])
          }
          that.currentArr.push(that.data[startrang])
          that.currentArr.push(that.data[startrang + 1])
          that.currentArr.push(that.data[startrang + 2])
          that.currentArr.push(that.data[startrang + 3])

          var bckOptions = {
            xAxis: {
              data: this.xAxis
            },
            yAxis: {
              max: Math.ceil(Math.max(...that.currentArr)),
            },
            series: [0, 0, 0, 0]
          }
          that.bckchart.setOption(bckOptions);
        })
      });
    },
    // 初始化生物多样性背景图
    initBiologyBck() {
      this.bckchart = this.$echarts.init(document.getElementById('biologybgchart'))
      var option = {
        xAxis: {
          type: 'category',
          data: this.xAxis,
          axisPointer: {
            // 设置为 dataZoom,并指定 dataZoom 的 id
            type: 'dataZoom',
            dataZoomId: 'biologychart'
          },
          axisLine: {       //x轴显示
            "show": false,
          },
          axisTick: {
            "show": false   //去掉x轴刻度线
          },
          // x轴文字旋转
          axisLabel: {
            rotate: 0,
            interval: 0,
            interval: 0,  //设置 X 轴数据间隔几个显示一个,为0表示都显示 
            color: "rgba(0,0,0,0)"  //坐标轴的文本颜色
          },
          //坐标轴颜色
          axisLine: {
            show: false,
            lineStyle: {
              color: '#00bbff',
              width: 2
            }
          },
        },
        yAxis: {
          name: 'ind/m³',
          type: 'value',
          // minInterval: 1,
          min: 0, // 配置 Y 轴刻度最小值
          // this.isShowScroll
          // max: Math.ceil(Math.max(...this.option.series[0].data)),  // 配置 Y 轴刻度最大值
          max: Math.ceil(Math.max(...this.currentArr)),
          // splitNumber:10,  // 配置 Y 轴数值间隔
          nameTextStyle: {
            color: 'rgba(230,247,255,0)',
            fontSize: 16, //  字体大小
            fontWeight: 'bolder',
            //关键代码
            padding: [0, 0, 0, -30] //标题位置调整 上 右 下 左
          },
          splitLine: {           //分割线
            show: false,     //控制分割线是否显示
            lineStyle: {       //分割线的样式
              color: ['rgba(255,255,255,0.3)'],
              width: 2,
              type: 'dashed'
            }
          },
          axisLine: {       //y轴不显示
            "show": false
          },
          axisTick: {       //y轴刻度线不显示
            "show": false
          },
          axisLabel: {
            color: "rgba(255,0,0,0)", //刻度线标签颜色
            fontSize: 14,
          },
        },
        grid: {          //设置图表显示在区域的哪个位置,控制图表的位置,可以是具体数值或者百分比
          left: '20px',
          right: '0px',
          bottom: '10px',
          top: '20px',
          containLabel: true,   //containLabel(grid 区域是否包含坐标轴的刻度标签,默认不包含)为true的情况下,无法使图表紧贴着画布显示,但可以防止标签标签长度动态变化时溢出容器或者覆盖其他组件,将containLabel设置为false即可解决
        },
        //滚动条样式
        dataZoom: [

          {

            id: 'biologychart',

            type: 'slider',

            show: false,

            // start: 0,//默认为0

            // end: 50,//默认为100

            startValue: 0, // 从头开始。

            endValue: 3, // 一次性展示6个。

            xAxisIndex: [0],

            handleSize: 0,//滑动条的 左右2个滑动条的大小

            height: 4,//组件高度

            bottom: 0,//右边的距离

            borderColor: "#e3e3e3",

            fillerColor: '#51B7F9',

            borderRadius: 10,

            backgroundColor: '#e3e3e3',//两边未选中的滑动条区域的颜色

            showDataShadow: false,//是否显示数据阴影 默认auto

            showDetail: false,//即拖拽时候是否显示详细数值信息 默认true

            realtime: true, //是否实时更新

            filterMode: 'filter',

            // zlevel: 10,

          },
          //以下重点: 让鼠标滚动从缩放变成移动
          // {

          //   type: 'inside',

          //   xAxisIndex: [0],

          //   zoomOnMouseWheel: false, //滚轮不触发缩放

          //   moveOnMouseMove: true,   //鼠标移动触发平移

          //   moveOnMouseWheel: true,  //鼠标滚轮触发平移

          // },

        ],
        series: [
          {
            data: [0, 0, 0, 0, 0],
            type: 'bar',
            barWidth: 40, //设置柱子宽度
            showBackground: true,
            backgroundStyle: {
              color: 'rgba(190,216,240,0.06)'
            }
          },

        ]
      };

      this.bckchart.setOption(option);

    },
  }
}
</script>

<style scoped>
.stream-water-wrapper {
  width: 100%;
  height: 300px;
}

.bck-chart {
  width: 90%;
  height: 250px;
  position: absolute;
}

.biology-chart {
  width: 90%;
  height: 250px;
}
</style>

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

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

相关文章

【JS基础】定时器的使用、事件监听

文章目录 前言一、定时器1.1定时器是什么1.2 setInterval函数1.3 关闭定时器clearInterval 二、事件监听2.1 事件监听是什么2.2 事件监听的使用基本语法点击事件鼠标事件焦点事件键盘事件 2.3 事件对象event 总结 前言 JavaScript 中的定时器和事件监听是 Web 开发中至关重要的…

如何在今日头条广告中轻松唤起微信?这个方法你一定不能错过

要在今日头条的广告中调起微信&#xff0c;实现加好友的功能&#xff0c;可以参考以下步骤&#xff1a; 首先&#xff0c;通过搜索引擎找到“数灵通”外链工具的官网&#xff0c;并进入其后台。在后台填写相关参数&#xff0c;生成一条能够跳转到微信的链接。这个链接的作用是…

云手机哪一款好用?

随着海外市场的不断发展&#xff0c;云手机市场也呈现蓬勃的态势&#xff0c;众多云设备软件纷纷涌现。企业在选择云手机软件时&#xff0c;如何找到性能卓越的软件成为一项关键任务。在众多选择中&#xff0c;OgPhone云手机凭借其卓越的性能和独特功能脱颖而出。以下是OgPhone…

机器学习分类模型评价指标总结(准确率、精确率、召回率、Fmax、TPR、FPR、ROC曲线、PR曲线,AUC,AUPR)

为了看懂论文&#xff0c;不得不先学一些预备知识&#xff08;&#xff08;55555 主要概念 解释见图 TP、FP、TN、FN 准确率、精确率&#xff08;查准率&#xff09;、召回率&#xff08;查全率&#xff09; 真阳性率TPR、伪阳性率FPR F1-score2TP/(2*TPFPFN) 最大响应分…

【python】爬取豆瓣影评保存到Excel文件中【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 【往期相关文章】 爬取豆瓣电影排行榜Top250存储到Excel文件中 爬取豆瓣电影排行榜TOP250存储到CSV文件中 爬取知乎热榜Top50保存到Excel文件中 爬取百度热搜排行榜Top50可视化 爬取斗鱼直播照片保存到本地目录 爬…

司铭宇老师:汽车销售培训:汽车销售员培训:汽车销售技巧培训:汽车销售技巧和话术

汽车销售培训&#xff1a;汽车销售员培训&#xff1a;汽车销售技巧培训&#xff1a;汽车销售技巧和话术 汽车销售是一项充满挑战性的工作&#xff0c;它需要销售人员具备良好的沟通技巧、谈判技巧以及产品讲解能力。在这篇文章中&#xff0c;我们将详细探讨汽车销售中的技巧和话…

无状态应用管理Deployment

无状态应用管理Deployment 1、Deployment介绍 Deployment一般用于部署公司的无状态服务。 格式&#xff1a; apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx …

openlayers+vue实现缓冲区

文章目录 前言一、准备二、初始化地图1、创建一个地图容器2、引入必须的类库3、地图初始化4、给地图增加底图 三、创建缓冲区1、引入需要的工具类库2、绘制方法 四、完整代码总结 前言 缓冲区是地理空间目标的一种影响范围或服务范围,是对选中的一组或一类地图要素(点、线或面…

2024年最新MacBook苹果电脑安装JDK8、JDK11教程,配置环境变量 + 快速切换JDK版本

本帖发布日期&#xff1a;2024年01月26日&#xff0c;全网最新教程整理。 1、概述 本文主要为在MacBook苹果电脑系统下安装JDK及环境变量配置。 教程并非原创&#xff0c;摘抄自互联网&#xff0c;本人作为更新整理亲测。&#xff08;也算给自己记录一贴&#xff09; 本帖分…

python之异常的捕获、模块、包

目录 1.了解异常 2.异常的捕获 3.异常的传递性 4.模块的概念和导入 5.自定义模块并导入 6.自定义python包 7.安装第三方包 1.了解异常 2.异常的捕获 直接报错了&#xff0c;说明我们捕获的就是名字的异常而没有捕获除0的异常。 这样就可以打印出异常 捕获全部的异常可以使…

HTML-表单

表单 概念&#xff1a;一个包含交互的区域&#xff0c;用于收集用户提供的数据。 1.基本结构 示例代码&#xff1a; <form action"https://www.baidu.com/s" target"_blank" method"get"><input type"text" name"wd&q…

使用代码取大量2*2像素图片各通道均值,存于Exel文件中。

任务是取下图RGB各个通道的均值及标签&#xff08;R, G&#xff0c;B&#xff0c;Label&#xff09;,其中标签由图片存放的文件夹标识。由于2*2像素图片较多&#xff0c;所以将结果放置于Exel表格中&#xff0c;之后使用SVM对他们进行分类。

20.云原生之GitLab集成Runner

云原生专栏大纲 文章目录 GitLab RunnerGitLab Runner 介绍GitLab Runner分类GitLab Runner工作流程 Gitlab集成Gitlab RunnerGitLab Runner 版本选择Runner在CitLab中位置专用Runner在gitlab中位置群组Runner在gitlab中位置共享Runner在gitlab中位置 GitLab部署Gitlab Runner…

Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据

Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据 引言正文 引言 之前在 《pandas向已经拥有数据的Excel文件中添加新数据》 一文中我们介绍了如何通过 pandas 向 Excel 文件中写入数据。那么对于含有多表头的数据&#xff0c;我们该如何将它们…

Linux管道学习(无名管道)

目录 1、概述 2、管道的创建 3、管道读写行为 3.1、管道读 3.2、管道写 4、管道用于兄弟进程之间的通讯 在linux中管道有两种&#xff0c;一是无名管道&#xff08;匿名管道&#xff09;&#xff0c;第二种是有名管道&#xff1b;无名管道主要用于有血缘关系的父子进程间…

八、Kotlin 反射

1. 什么是反射 反射是允许在运行时期访问 程序结构 的一类特性&#xff08;程序结构包括&#xff1a;类、接口、方法、属性等&#xff09;。 2. 反射的依赖库 Kotlin 中不仅自己实现了一套 Kotlin 反射的 API&#xff0c;还可以使用 Java 反射的 API。 Kotlin 反射的 API 是…

day33WEB 攻防-通用漏洞文件上传中间件解析漏洞编辑器安全

目录 一&#xff0c;中间件文件解析漏洞-IIS&Apache&Nginx -IIS 6 7 文件名 目录名 -Apache 换行解析 配置不当 1、换行解析-CVE-2017-15715 2、配置不当-.htaccess 配置不当 -Nginx 文件名逻辑 解析漏洞 1、文件名逻辑-CVE-2013-4547 2、解析漏洞-nginx.conf …

ECharts 中 Legend自定义可以使用svg标签

效果图&#xff1a; legend图例加载svg标签 在ECharts中&#xff0c;图例(legend)组件的formatter属性允许你自定义图例文本的格式。但是&#xff0c;formatter属性不支持直接加载SVG标签或Html。它接受一个字符串或者一个函数作为输入&#xff0c;并不能解析或渲染SVG。 如果…

探索 DevOps 中的自动化技术

DevOps 是一种强调开发与 IT 运营之间合作的软件开发范式&#xff0c;主要依靠自动化来优化流程、提高生产力并确保及时、可靠的软件交付。以下是对 DevOps 不可或缺的关键自动化技术的探索&#xff1a; 1.持续集成/持续部署&#xff08;CI/CD&#xff09; 在 DevOps 领域&…

WebSocket服务端数据推送及心跳机制(Spring Boot + VUE):

文章目录 一、WebSocket简介&#xff1a;二、WebSocket通信原理及机制&#xff1a;三、WebSocket特点和优点&#xff1a;四、WebSocket心跳机制&#xff1a;五、在后端Spring Boot 和前端VUE中如何建立通信&#xff1a;【1】在Spring Boot 中 pom.xml中添加 websocket依赖【2】…