echarts数据可视化-动态柱状图

news2024/12/31 5:13:35

效果如下:
在这里插入图片描述
此处用的echarts柱状图为:Axis Align with Tick
本文的要讨论的内容:
1、柱状图样式修改
2、多数据的缩放展示


柱状图样式修改

// 数据
const city = reactive([
    { value: 335, name: '长沙' },
    { value: 310, name: '武汉' },
    { value: 274, name: '岳阳' },
    { value: 235, name: '重庆' },
    { value: 380, name: '杭州' }
])
const cityName = reactive([])  // 城市-通过遍历将city的name放到cityName中
const cityValue = reactive([]) // 值-通过遍历将city的value放到cityValue中
// option 配置项
const axisAlign = () => {
    let option = {
        // 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
        color:{
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [{
                offset: 0, color: '#00fefb' // 0% 处的颜色
            }, {
                offset: 1, color: '#0063ce' // 100% 处的颜色
            }],
            global: false // 缺省为 false
        },
        /* 鼠标移入的工具提示 */
        tooltip: {
            trigger: 'axis',
            axisPointer: {
            type: 'line'
            },
            backgroundColor : 'rgba(0,0,0,0.4)', /* 背景色 */
            borderColor: 'transparent',  // 边框色
            textStyle: {   // 文字颜色
                color : 'rgba(255,255,255,0.8)'
            }
        },
        /* x y 轴的文字样式 */
        textStyle:{
            color: '#4c9bfd'
        },
        // 轴下方指向的颜色
        axisTick: {
            lineStyle : { color : '#096b80' }
        },
        /* 布局 */
        grid: {
            left: '0%',
            right: '0%',
            bottom: '10%',
            top: '4%',
            show: true,  // 为true时允许修改样式
            containLabel: true,
            borderColor: '#096b80'  /* 边框的颜色 */
        },
        /* 直角坐标系 grid 中的 x 轴 */
        xAxis: [
            {
            type: 'category',
            data: cityName,  /* 数据 */
            axisTick: {
                alignWithLabel: true
            },
            }
        ],
        /* 直角坐标系 grid 中的 y 轴 */
        yAxis: [
            {
            type: 'value',
            splitLine: {   // y轴分割线配置
                show:true,
                lineStyle: {
                    color: "#096b80",
             }
            }
            },
        ],
        /* 整体配置 */
        series: [
            {
            name: '用户统计',
            type: 'bar',
            barWidth: '60%',
            data: cityValue,

            }
        ]
        };
        myChart.setOption(option);
}

多数据的缩放展示

某些情况下,柱状图需要展示非常多的数据并进行比对,如果我们将所有的数据全都渲染出来会出现数据的堆叠或空间挤压,不方便观看且极不美观,如下图所示:
在这里插入图片描述
我们可以将这种多数据柱状图改成区域缩放展示,在区域缩放中可以配置滑动缩放展示,用户在滑动条上进行缩放或漫游。核心配置就是dataZoom,在使用dataZoom之前需要引入和注册组件

// 引入和注册
import { DataZoomComponent } from 'echarts/components';
echarts.use([DataZoomComponent]);

引入完成后就可以在option中配置dataZoom

/* 设置滚动条,处理数据过多的挤压问题 */
dataZoom : [
   {
    type: 'slider',  // 滑动条型数据区域缩放组件
    show: true,  // 允许修改样式
    /* start和end表示滚动条默认展示的比例,这里为1~50% */
    start: 1,  
    end: 50,
    height:15,  // 滚动条高度
    bottom:5,   // 滚动条距离底部位置
    xAxisIndex: [0],  // 对应xAxis中的data数据,数组中的第0位,如果是[0,2]则是数组中0~2位,这里xAxis的data中只有一个对象,所以选[0]
  }
]

在这里插入图片描述

这样一个简单的滑块缩放就完成了,当前的配置当中,除了滑块大小和位置外所有的样式都是官方提供的初始样式,为了融入项目整体,我们需要给滑块配置样式

/* 设置滚动条,处理数据过多的挤压问题 */
dataZoom : [
    {
      type: 'slider',
      show: true,
      /* start和end表示滚动条默认展示的比例,这里为1~50% */
      start: 1,  
      end: 50,
      height:15,  // 滚动条高度
      bottom:5,   // 滚动条底部位置
      borderColor : '#4c9bfd',  // 边框颜色
      /* 滑块内数据的样式 */
      dataBackground : {
          // 滑块内线条的颜色
          lineStyle : {
               color : '#4c9bfd'
          },
          /* 滑块内阴影的颜色 */
          areaStyle: {
               color : '#4c9bfd'
          } 
      },
      /* 滑块内选中数据的样式 */
      selectedDataBackground : {
          // 滑块内线条的颜色
          lineStyle : {
             color : '#4c9bfd'
          },
          /* 滑块内阴影的颜色 */
          areaStyle: {
             color : '#4c9bfd'
          } 
       },
       xAxisIndex: [0],  // 对应xAxis中的data数据,数组中的第0位,如果是[0,2]则是数组中0~2位
       handleSize: '50%',  /* 滚动条的左右滑块大小 */
       moveHandleSize : 5,  // 滚动条两侧手柄大小
       moveHandleStyle : {  // 滚动条样式
            color : '#4c9bfd'
        },
       textStyle: {  // 滑块文字样式
            color : '#4c9bfd'
        }
      }
]

在这里插入图片描述
完整的样式配置如下:

const axisAlign = () => {
    let option = {
        // 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
        color:{
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [{
                offset: 0, color: '#00fefb' // 0% 处的颜色
            }, {
                offset: 1, color: '#0063ce' // 100% 处的颜色
            }],
            global: false // 缺省为 false
        },
        /* 鼠标移入的工具提示 */
        tooltip: {
            trigger: 'axis',
            axisPointer: {
            type: 'line'
            },
            backgroundColor : 'rgba(0,0,0,0.4)', /* 背景色 */
            borderColor: 'transparent',  // 边框色
            textStyle: {   // 文字颜色
                color : 'rgba(255,255,255,0.8)'
            }
        },
        /* x y 轴的文字样式 */
        textStyle:{
            color: '#4c9bfd'
        },
        // 轴下方指向的颜色
        axisTick: {
            lineStyle : { color : '#096b80' }
        },
        /* 设置滚动条,处理数据过多的挤压问题 */
        dataZoom : [
          {
            type: 'slider',
            show: true,
            /* start和end表示滚动条默认展示的比例,这里为1~50% */
            start: 1,  
            end: 50,
            height:15,  // 滚动条高度
            bottom:5,   // 滚动条底部位置
            borderColor : '#4c9bfd',  // 边框颜色
            /* 滑块内数据的样式 */
            dataBackground : {
                // 滑块内线条的颜色
                lineStyle : {
                    color : '#4c9bfd'
                },
                /* 滑块内阴影的颜色 */
                areaStyle: {
                    color : '#4c9bfd'
                } 
            },
            /* 滑块内选中数据的样式 */
            selectedDataBackground : {
                // 滑块内线条的颜色
                lineStyle : {
                    color : '#4c9bfd'
                },
                /* 滑块内阴影的颜色 */
                areaStyle: {
                    color : '#4c9bfd'
                } 
            },
            xAxisIndex: [0],  // 对应xAxis中的data数据,数组中的第0位,如果是[0,2]则是数组中0~2位
            handleSize: '50%',  /* 滚动条的左右滑块大小 */
            moveHandleSize : 5,  // 滚动条两侧手柄大小
            moveHandleStyle : {  // 滚动条样式
                color : '#4c9bfd'
            },
            textStyle: {  // 滑块文字样式
                color : '#4c9bfd'
            }
          },
        ],
        /* 布局 */
        grid: {
            left: '0%',
            right: '0%',
            bottom: '10%',
            top: '4%',
            show: true,  // 为true时允许修改样式
            containLabel: true,
            borderColor: '#096b80'  /* 边框的颜色 */
        },
        /* 直角坐标系 grid 中的 x 轴 */
        xAxis: [
            {
            type: 'category',
            data: cityName,  /* 数据 */
            axisTick: {
                alignWithLabel: true
            },
            }
        ],
        /* 直角坐标系 grid 中的 y 轴 */
        yAxis: [
            {
            type: 'value',
            splitLine: {   // y轴分割线配置
                show:true,
                lineStyle: {
                    color: "#096b80",
             }
            }
            },
        ],
        /* 整体配置 */
        series: [
            {
            name: '用户统计',
            type: 'bar',
            barWidth: '60%',
            data: cityValue,

            }
        ]
        };

        myChart.setOption(option);
}

到这里我们的柱状图配置就结束了🎉🎉🎉~
最后附上官方配置项文档:https://echarts.apache.org/zh/option.html#title


如果觉得这篇文章对你有帮助,欢迎点赞👍、收藏💖、转发✨哦~

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

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

相关文章

C++类和对象 ——构造函数

C拷贝构造函数详解 什么是拷贝构造函数?拷贝构造函数的特征默认拷贝构造函数为什么需要显示定义构造函数?拷贝构造函数的调用场景什么时候不需要自己定义拷贝构造函数 什么是拷贝构造函数? 在现实生活中,拷贝构造函数就好像我们上…

Linux服务器 容器化部署新版Jenkins

安装Docker 先安装yml yum install -y yum-utils device-mapper-persistent-data lvm2设置加速镜像(阿里云镜像) sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装docker yum -y install d…

智慧工厂人员定位系统源码,实现对工厂内的人车、物、料等的精确定位

智慧工厂人员定位系统源码 技术架构:Java vue spring boot 系统概述: 采用UWB定位技术,通过在厂区内布设一定数量的定位基站,实时精确地定位员工、车辆、物品上微标签位置,零延时地将人、车、物的位置信息显示在工厂…

数据结构(六)—— 二叉树(2)遍历

文章目录 递归三要素一、深度优先遍历(前中后序)1.1 递归遍历1.1.1 前序(中左右)1.1.2 中序(左中右)1.1.3 后序(左右中) 1.2 迭代遍历1.2.1 前序1.2.2 后序1.2.3 中序 二、广度优先遍…

创建前、中、后序二叉树

创建前、中、后序二叉树 一、前序二叉树二、中序二叉树二、后序二叉树 一、前序二叉树 规则:根->左->右 前序遍历结果:ABCDEFGHK 二、中序二叉树 规则:左->根->右 中序遍历结果:ABCDEFG 二、后序二叉树 规则&a…

浅尝ChatGPT使用之Python字典嵌套排序

一、背景 所负责的项目从v1.0升级到v2.0之后,发送到kafka的Json数据字段顺序和内容有所改变, v1.0版本推送数据样例: {"name": "小王子","author": "安托万德圣-埃克苏佩里(1900-1944&#…

1.Hive基础

1.简介 作用:将结构化数据映射为一张表,并提供类sql功能 本质:将HQL转化成MapReduce程序 (1)Hive处理的数据存储在HDFS ​ (2)Hive分析数据底层的实现是MapReduce ​ (3&#x…

keil5固件库版本的工程建立

keil5固件库版本的工程建立 一、一个文件夹,如图再建立4个文件夹 二、准库往上图四个文件夹里粘贴 从标准库里面把Libraries里面的两个文件夹全部复制到新建文件夹Libraries里面 三、来对新建的Libraries里面的两个文件夹进行更改 STM32F10x_StdPeriph_Driver这个…

ajax与json

title: 15 ajax与json date: ‘2023-3-29’ 从一个例子开始 传统的方式进行前后端交互是什么样子的&#xff1f; <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <html> <head><me…

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

不得不说python的中文cms建站教程实在是太少了&#xff0c;直接用Django/Flask这样的框架从头开始写又实在是有点麻烦&#xff0c;自己摸索着写一点使用Wagtail建站的方法&#xff0c;仅供参考。Wagtail是一款基于Django框架的CMS建站工具&#xff0c;可以为你的网站提供一个比…

点赋科技:本地生活,如何开启复苏之路

目前&#xff0c;全球经历这场前所未有的疫情大流行已经结束&#xff0c;尽管许多国家和地区的经济和社会都受到了影响。然而&#xff0c;做好本地生活的复苏规划和推进&#xff0c;将有助于在疫情之后尽快走出经济低迷期&#xff0c;恢复社会活动和生活体验。点赋科技将阐述如…

初识MySQL数据库——“MySQL数据库”

各位CSDN的uu们你们好呀&#xff0c;小雅兰好久没有更文啦&#xff0c;确实是心有余而力不足&#xff0c;最近学习的内容太难了&#xff0c;这篇博客又是小雅兰的新专栏啦&#xff0c;主要介绍的是一些MySQL数据库的知识点&#xff0c;下面&#xff0c;让我们进入初识MySQL数据…

【黑马程序员 C++教程从0到1入门编程】【笔记8】 泛型编程——模板

https://www.bilibili.com/video/BV1et411b73Z?p167 C泛型编程是一种编程范式&#xff0c;它的核心思想是编写通用的代码&#xff0c;使得代码可以适用于多种不同的数据类型。 而模板是C中实现泛型编程的一种机制&#xff0c;它允许我们编写通用的代码模板&#xff0c;然后在需…

静态成员与友元函数

有缘 class Point {private:double x, y; public:Point(double xx, double yy) ;friend double Distance(Point &a, Point &b); };Point::Point(double xx, double yy) {x xx;y yy; }double Distance(Point &a, Point &b) {return sqrt(pow(a.x - b.x, 2) p…

【STM32CubeMX】F103定时中断

前言 本文记录下我学习STM32CubeMX时的流程&#xff0c;方便以后回忆。系统板是基于STM32F103C6T6。本章记录定时中断。 步骤 实验目标&#xff1a;利用定时器TIM2装载计数&#xff0c;1S的定时中断事件&#xff0c;事件是LED(PC13)的亮灭。 配置时钟源为外部高速源(HSE),流程…

MinIO分布式存储服务

一、前言 最近项目中使用到了MinIO的分布式存储系统&#xff0c;记录一下Minio服务的相关概念以及使用方法。 二、基本概念 MinIO 对象存储系统是为海量数据存储、人工智能、大数据分析而设计&#xff0c;基于Apache License v2.0 开源协议的对象存储系统&#xff0c;它完全…

【五一创作】【软考:软件设计师】 5 计算机组成与体系结构(三)认证技术 | 计算机可靠性

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于软考中级&#xff1a;软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解与真题讲解两大部分,并且提供电子教材与电子版真题,关注私聊即可 …

C++入门(保姆级教程)

目录 一、C关键字 二、命名空间 2.1 C语言中的命名冲突 2.2 C中命名空间 2.2.1 命名空间的定义 2.2.2 命名空间的特性 2.2.3 命名空间的使用 2.2.4 补充知识 2.2.4 C库的命名空间 三、C中的输入&输出 四、缺省参数 4.1 定义 4.2 缺省参数的分类 4.2.1 全缺…

Nacos—简述、注册中心、配置中心

目录 什么是Nacos&#xff1f; 什么是注册中心&#xff1f; 什么是配置中心&#xff1f; 什么是服务管理平台&#xff1f; Nacos的关键特性包括&#xff08;有点&#xff09;有哪些&#xff1f; 作用&#xff08;为什么要使用&#xff09;&#xff1f; 注册中心演变过程 …

业绩稳健增长,公牛集团新老业务如何实现齐头并进?

“插座一哥”公牛集团&#xff0c;正在经历其迈向更高质量发展的自我优化。 4月27日晚&#xff0c;公牛集团&#xff08;SH:603195&#xff09;发布了《2022年年度报告》及《2023年第一季度报告》。去年&#xff0c;宏观市场动荡&#xff0c;但公牛集团不仅保持了业绩的稳健增…