echarts的柱状图使用

news2024/11/14 18:16:35

1. 柱状图(柱体顶部使用外部图片


在这里插入图片描述
相关代码

<template>
  <div class="out-bg">
    <div class="container" ref="warnChartRef"></div>
  </div>
</template>

<script>
import * as echarts from 'echarts'
export default {
  data() {
    return {
      jqrwChart: null,
      active: 0,
      xData: ['公交车', '卡车', '小客车', '工程车', '挖掘机', '未带安全帽', '烟雾', '货车', '轿车'], // 赋值x轴的数据
      seriesData: [147, 244, 2, 2, 174, 1, 1, 897, 1628],// 赋值Y轴的数据
      barTopImg: require('@/assets/images/bigScreen/bar-top.png'),
      symbolData: [],
      timer: null,
    }
  },
  mounted() {
    this.initData()
  },
  methods: {
    //echarts自适应
    fontSize(res) {
      let clientWidth =
        window.innerWidth ||
        document.documentElement.clientWidth ||
        document.body.clientWidth;
      if (!clientWidth) return;
      let fontSize = clientWidth / 1920;
      return res * fontSize;
    },
    initData() {
      this.xData.forEach((item, index) => {
        // 设置markPoint数据
        this.symbolData.push({
          symbol: 'image://' + this.barTopImg,
          symbolSize: [this.fontSize(20), this.fontSize(18)],
          xAxis: item,
          yAxis: this.seriesData[index], // 对应每列基础bar的值
        });
      });
      this.intChart();
    },
    intChart() {
      this.$nextTick(() => {
        this.jqrwChart = echarts.init(this.$refs.warnChartRef);
        this.jqrwChart.clear();
        this.jqrwChart.resize();
        let option = {
          grid: {
            containLabel: true,
            // width: '70%',
            // height: '68%',
            top: 20,
            right: 15,
            bottom: 0,
            left: 10,
          },
          tooltip: {
            trigger: "axis",
            axisPointer: {
              type: "shadow",
            },
          },
          xAxis: {
            // 类目轴
            type: "category",
            data: this.xData,
            axisTick: {
              show: false, //隐藏X轴刻度
            },
            axisLine: {
              lineStyle: {
                color: "rgba(57, 70, 89, 1)",
              },
            },
            axisLabel: {
              show: true,
              rotate: 25, // 轴转动
              textStyle: {
                color: "#fff",
                fontSize: this.fontSize(10),
                fontFamily: "Source Han Sans CN-Regular",
              },
            },
          },
          yAxis: {
            type: "value",
            name: "",
            nameTextStyle: { // 坐标轴名称的样式
              color: "rgba(255,255,255,1)",
              fontSize: this.fontSize(14),
              fontFamily: "Source Han Sans CN-Regular",
              align: "left",
              verticalAlign: "center",
            },
            axisLabel: { // 刻度标签
              show: true,
              color: "rgba(255,255,255,1)",
              textStyle: {
                fontSize: this.fontSize(14),
              },
            },
            axisLine: { // 刻度线
              show: false,
              lineStyle: {
                color: "rgba(57, 70, 89, 1)",
              },
            },
            axisTick: {
              show: false,
            },
            splitLine: { // 分隔线
              lineStyle: {
                color: "rgba(57, 70, 89, 1)",
                type: "dashed",
              },
            },
          },
          series: [
            {
              name: "数据",
              type: "bar",
              barWidth: this.fontSize(20),
              showBackground: true,
              backgroundStyle: {
                color: "transparent",
              },
              label: {
                show: true,
                position: 'top',
                color: '#fff',
                fontSize: this.fontSize(14),
                fontFamily: "DingTalkJinBuTi",
                padding: [0, 0, this.fontSize(4), 0]
              },
              itemStyle: {
                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  { offset: 0, color: "rgba(0, 123, 232, 0.61)" },
                  { offset: 1, color: "rgba(24, 126, 171, 0)" },
                ]),
              },
              data: this.seriesData,
              markPoint: {
                data: this.symbolData,
              }
            },
          ],
        };
        this.jqrwChart.setOption(option, true);
        // 监听窗口变化
        window.addEventListener('resize', this.setSize)
      });
    },
    setSize() {
      if (this.timer) {
        clearTimeout(this.timer)
      }
      this.timer = setTimeout(() => {
        this.jqrwChart.resize();
      }, 500);
    },

  },
  destroyed() {
    window.removeEventListener('resize', this.setSize)
  }
}
</script>

<style lang="less" scoped>
  .out-bg{
    width: 100%;
    height: 100%;
    .container{
      width: 100%;
      height: 16.25rem;
    }
  }
</style>

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

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

相关文章

【Linux系统编程】基本指令(二)

目录 1、mv指令 2、cat指令 输出重定向 ​编辑 追加重定向 输入重定向 3、more指令 4、less指令 5、head指令 6、tail指令 与时间相关的指令 7、date指令 8、cal指令 9、find指令 10、grep指令 11、zip/unzip指令 1、mv指令 mv文件是用来对文件或目录进行重命名…

网络爬虫安全:90后小伙,用软件非法搬运他人原创视频被判刑

目录 违法视频搬运软件是网络爬虫 如何发现偷盗视频的爬虫&#xff1f; 拦截违法网络爬虫 央视《今日说法》栏目近日报道了一名程序员开发非法视频搬运软件获利超700多万&#xff0c;最终获刑的案例。 国内某知名短视频平台报警称&#xff0c;有人在网络上售卖一款视频搬运…

玩转Matlab-Simscape(初级)- 07 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(理论部分3)

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 07 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&#xff08;理论部分3&#xff09; ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 07 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&am…

探索Dapper与EF Core等ORM框架的神器

Dapper的好处&#xff1a; 轻量级&#xff1a;Dapper是一个非常轻量级的库&#xff0c;对性能的影响非常小。它主要关注于执行SQL查询和映射查询结果到对象&#xff0c;因此它的设计和实现都非常简洁。直接SQL&#xff1a;Dapper鼓励直接写SQL&#xff0c;而不是使用抽象查询语…

从独立开发者到成为SeaTunnel社区的贡献者,我做对了哪些事儿?

个人介绍 大家好&#xff0c;我是闫成雨&#xff0c;目前是一名独立开发者。专注于数据开发、机器学习、资源调度算法和分布式系统。 GitHub ID: CheneyYin 个人主页&#xff1a;https://cheneyyin.github.io/ 为社区做了哪些贡献 加强了Spark引擎和Flink引擎对SeaTunnel数据…

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你7条!

1:文件太多&#xff0c;不方便马上找到需要插入元素&#xff08;元素放入PS会发现&#xff0c;位置不知道在哪里&#xff09;&#xff0c;点击需要选中或者搭配的元素&#xff0c;ctrlV就可以快速插入目标/图层元素的位置了&#xff01; 点击当前元素&#xff0c;选中&#xf…

MT3035 逆波兰式

思路&#xff1a; 两个栈str1和sr2&#xff0c;分别存放运算符和结果。 如果是数字&#xff0c;直接放入str2中。 如果是运算符&#xff1a; 1. ( &#xff1a;直接放入 str1 2. /-/*// 看栈顶元素&#xff0c;若当前字符优先级比栈顶大&#xff0c;则压到str1中&#x…

【STL】string

本节博客主要是介绍了一下CPP标准库中的string这一容器的相关用法和常用接口&#xff0c;有需要借鉴即可。 目录 1.string介绍1.1CPP标准库与STL关系1.2string历史问题与介绍 2.string概要3.Member functions3.1constructor3.2operator 4.访问4.1[]访问4.2迭代器访问4.3范围for…

软件测试的一些概念

一.基本概念 1.什么事需求 1&#xff09;需求的定义 用户需求&#xff1a;可以简单理解为甲方提出的需求&#xff0c;如果没有甲方&#xff0c;那么就是终端用户使用产品时&#xff0c;必须完成的任务&#xff0c;该需求一般比较简略 软件需求&#xff1a;或则叫功能需求&a…

【Amplify_自己写的shadr遇到没有阴影的解决方案】

Amplify 自己写的shadr遇到没有阴影的解决方案 2020-01-21 16:04 本来我有个百试很灵的投射阴影脚本。 这次不灵光了&#xff01;地形内建材质&#xff0c;这个不支持投射的阴影~~奇了怪了。 可以采用引用的方式UsePass加入阴影部分代码&#xff0c;具体操作如下&#xff1…

视觉SLAM14精讲——三维空间刚体运动1.2

三维空间刚体运动 欧拉角 欧拉角可以说是零理解成本的表示形式&#xff0c;由于有万向锁的问题被绝大部分项目所抛弃。欧拉角的每个轴旋转都有固定好的名称&#xff0c;这些名称十分直观&#xff1a; Z轴旋转&#xff0c;相当于左右旋转&#xff0c;叫航角&#xff0c;或偏航…

photoshop(PS)有什么快速提升工作效率的功能?或者实用功能?这里告诉你5条!

1:文件太多&#xff0c;不方便马上找到需要插入元素&#xff08;元素放入PS会发现&#xff0c;位置不知道在哪里&#xff09;&#xff0c;点击需要选中或者搭配的元素&#xff0c;ctrlV就可以快速插入目标/图层元素的位置了&#xff01; 点击当前元素&#xff0c;选中&#xf…

全局异常处理实现

全局异常统一处理 ​ 全局异常处理类通常用于捕获和处理应用程序中发生的所有异常&#xff0c;从而避免在代码的多个地方重复编写异常处理逻辑。 一、全局异常处理方案 ​ 全局异常处理类有多种实现方式&#xff0c;每种方式都有其特定的应用场景和优势。以下是几种常见的全…

Vitis HLS 学习笔记--理解串流Stream(1)

目录 1. 介绍 2. 示例 2.1 代码解析 2.2 串流数据类型 2.3 综合报告 3. 总结 1. 介绍 在Vitis HLS中&#xff0c;hls::stream是一个用于在C/C中进行高级合成的关键数据结构。它类似于C标准库中的std::stream&#xff0c;但是专门设计用于硬件描述语言&#xff08;如Veri…

vue使用marked和highlight.js实现代码高亮效果

marked是对markdown进行解析的插件&#xff0c;它可以把markdown语法解析成html语法&#xff0c;从而实现页面效果&#xff0c;而highlight.js是对解析出的代码实现高亮效果 效果&#xff1a; 安装&#xff1a;避免踩我走的坑&#xff0c;安装尽量按照这个版本安装 npm install…

【Linux网络编程】IO多路转接之poll

poll 1.poll初始2.poll函数接口3.poll服务器4.poll的优点缺点 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.poll初始 poll也是一种linux…

物联网D4——OLED显示屏

OLED简介 调试方式 SCL和SDA端口 在STM32微控制器中&#xff0c;SCL代表Serial Clock&#xff08;串行时钟线&#xff09;&#xff0c;它是IC&#xff08;Inter-Integrated Circuit&#xff09;总线协议的两个信号线之一。IC总线是一种常用的双向同步串行通信接口&#xff0c;…

el-tooltip 提示框样式修改?

【element-plus el-tooltip官网地址&#xff1a; Tooltip 文字提示 | Element Plus】 <el-tooltippopper-class"Tooltip":content"content"placement"top"effect"light" ><span class"content">{{ content }}&l…

Leecode热题100---3:无重复字符的最长子串

题目&#xff1a;给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 C&#xff1a; 指针法&#xff0c;使用at读取字符串中的值&#xff1b; #include <iostream> #include <string> #include <vector> #include <windows.…