漏刻有时数据可视化Echarts组件开发(28):异形柱图、pictorialBar和dataZoom组件的使用

news2025/2/28 21:49:27

在这里插入图片描述

构建容器

 var dom = document.getElementById('container');
        var myChart = echarts.init(dom, null, {
            renderer: 'canvas',
            useDirtyRect: false
        });

模拟数据

    var dataList = [
        {name: '班级一', value: 120, max: 120, min: 20},
        {name: '班级二', value: 183, max: 200, min: 20},
        {name: '班级三', value: 43, max: 300, min: 120},
        {name: '班级四', value: 28, max: 100, min: 20},
        {name: '班级五', value: 56, max: 100, min: 20},
        {name: '班级六', value: 23, max: 100, min: 20},
        {name: '班级七', value: 76, max: 100, min: 20},
        {name: '班级八', value: 67, max: 100, min: 80}
    ];
// 头部数据
        let topData = dataList.map((item) => {
            return {name: '', value: item.max, symbolPosition: 'end', max: item.value, min: item.min};
        });


        // 中间圆片
        let middleCircle = dataList.map((item) => {
            return {name: '', value: item.value, symbolPosition: 'end', max: item.max, min: item.min};
        });

        // 底下圆片
        let bottomCircle = dataList.map((item) => {
            return {name: '', value: item.max, max: item.value, min: item.min};
        });

        // 上边的柱子
        let upBar = dataList.map((item) => {
            return {name: item.name, value: item.max - item.value, value1: item.value, max: item.max, min: item.min};
        });

        // 底部立体柱子
        let bottomBar = dataList.map((item) => {
            return {name: item.name, value: item.value, max: item.max, min: item.min};
        });

配置选项

 var option = {
            title: {
                text: '液位使用率统计图'
            },
            tooltip: {
                trigger: 'item',
                backgroundColor: 'rgba(0,0,0,0.5)',
                borderColor: 'rgba(0,0,0,1)',
                borderWidth: 1,
                padding: 5,
                textStyle: {
                    color: 'rgba(255,255,255,1)',
                    fontSize: 18,
                    width: 300,
                    height: 40
                },
                formatter: '{a} {c}' + '米',
            },
            toolbox: {
                feature: {
                    saveAsImage: {}
                }
            },
            grid: {
                bottom: '10%',
                top: '15%',
                right: '3%',
                left: '3%',
                containLabel: true
            },
            dataZoom: [{
                show: true,
                start: 0,
                end: 100,
                type: "inside",
                bottom: 10,
                filterMode: 'empty'
            }],
            xAxis: {
                data: ['班级一', '班级二', '班级三', '班级四', '班级五', '班级六', '班级七', '班级八'],
                axisTick: {
                    show: false
                },
                axisLine: {
                    show: false
                },
                axisLabel: {
                    show: true,
                    textStyle: {
                        color: '#000'
                    },
                    margin: 30 //刻度标签与轴线之间的距离。
                }
            },
            yAxis: {
                type: 'value',
                axisLabel: {
                    formatter: '{value} 米'
                }
            },
            series: [
                {
                    name: '液位总高度',//最上层立体圆
                    type: 'pictorialBar',
                    symbolSize: [120, 45],
                    symbolOffset: [0, -20],
                    z: 12,
                    itemStyle: {
                        color: function (params) {
                            return getBgColor(params.data.max, params.data.min, params.data.value);
                        },
                        opacity: 1
                    },
                    data: topData
                },
                {
                    name: '液位已使用',//中间立体圆
                    type: 'pictorialBar',
                    symbolSize: [120, 42],
                    symbolOffset: [0, -20],
                    itemStyle: {
                        color: function (params) {
                            return getBgColor(params.value, params.data.min, params.data.max);
                        },
                        opacity: 1
                    },
                    z: 12,
                    data: middleCircle
                },
                {
                    name: '液位总高度',//最底部立体圆
                    type: 'pictorialBar',
                    symbolSize: [120, 30],
                    symbolOffset: [0, 16],
                    z: 12,
                    itemStyle: {
                        color: function (params) {
                            return getBgColor(params.data.max, params.data.min, params.data.value);
                        },
                        opacity: 1
                    },
                    data: bottomCircle
                },
                {
                    name: '底部立体柱',
                    stack: '1',
                    type: 'bar',
                    silent: true,
                    barWidth: 120,
                    data: bottomBar,
                    itemStyle: {
                        color: function (params) {
                            return getBgColor(params.data.value, params.data.min, params.data.max);
                        },
                        opacity: .8
                    }
                },
                {
                    name: '上部立体柱',
                    stack: '1',
                    type: 'bar',
                    itemStyle: {
                        color: function (params) {
                            return getBgColor(params.data.value1, params.data.min, params.data.max);
                        },
                        opacity: .4
                    },
                    label: {
                        show: true,
                        position: 'top',
                        distance: 20,
                        color: '#000',
                        fontSize: 20,
                        formatter: function (item) {
                            return parseFloat(((item.data.max - item.data.value) / item.data.max) * 100).toFixed(2) + '%';
                        }
                    },
                    silent: true,
                    barWidth: 120,
                    //barGap: '-100%', // Make series be overlap
                    data: upBar
                }
            ]
        };

自适应窗口

 myChart.setOption(option);
        window.addEventListener("resize", function () {
            myChart.resize();
        });

颜色条件判断封装函数

 //获取背景色;
    function getBgColor(num, min, max) {
        if (num >= max) {
            return 'rgb(255, 70, 131)';//#e60000
        }

        if (num > min && num < max) {
            return '#80FFA5';//#40f453
        }

        if (num <= min) {
            return '#37A2FF';//#16bcfd
        }
    }

dataZoom组件

dataZoom组件是ECharts中的数据区域缩放组件。它可对数轴(axis)进行“数据窗口缩放”“数据窗口平移”操作。

dataZoom组件有几种类型,包括内置型(dataZoomInside)、滑动条型(dataZoomSlider)和框选型(dataZoomSelect)。

内置型dataZoom组件内置于坐标系中,用户可以通过鼠标拖拽、鼠标滚轮或手指滑动(触屏上)来缩放或漫游坐标系。

滑动条型dataZoom组件有单独的滑动条,用户在滑动条上进行缩放或漫游。

框选型dataZoom组件提供一个选框进行数据区域缩放。

可以通过dataZoom.xAxisIndex或dataZoom.yAxisIndex来指定dataZoom控制哪个或哪些数轴。dataZoom组件可同时存在多个,起到共同控制的作用。控制同一个数轴的组件,会自动联动。

pictorialBar组件

在ECharts中,pictorialBar组件是一种特殊的条形图,它使用图形和图片来表现数据。具体来说,pictorialBar组件可以使用不同的图形,如圆形、方形等,来表示数据。

这些图形可以按照不同的方式来表现数据,例如,可以使用图形的长度和宽度变形来表现数据的大小。另外,也可以通过改变图形的个数、颜色、透明度等来表现数据的不同特征。

在使用pictorialBar组件时,需要对不同的属性进行设置,如symbol表示要使用的图形类型;symbolSize表示图形的大小;data表示要展示的数据等。

总之,pictorialBar组件是一种非常灵活和强大的数据可视化工具,可以帮助用户更好地理解和分析数据。


@漏刻有时

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

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

相关文章

Windows如何删除“$WINDOWS.~BT“文件夹,解决权限不足无法删除

$WINDOWS.~BT是干嘛的 $Windows.BT是升级或者安装Windows操作系统中间过程中产生的临时文件夹&#xff0c;一般用于保存下载后的升级文件&#xff0c;或者安装过程中复制文件时产生的。用于保存Windows安装记录, 包括配置资料, 错误报告等, 如果安装失败便可反馈给微软公司&am…

pytorch学习3(pytorch手写数字识别练习)

网络模型 设置三层网络&#xff0c;一般最后一层激活函数不选择relu 任务步骤 手写数字识别任务共有四个步骤&#xff1a; 1、数据加载--Load Data 2、构建网络--Build Model 3、训练--Train 4、测试--Test实战 1、导入各种需要的包 import torch from torch import nn f…

Matlab图像处理-区域特征

凹凸性 设P是图像子集S中的点&#xff0c;若通过的每条直线只与S相交一次&#xff0c;则称S为发自P的星形&#xff0c;也就是站在P点能看到S的所有点。 满足下列条件之一&#xff0c;称此为凸状的&#xff1a; 1.从S中每点看&#xff0c;S都是星形的&#xff1b; 2.对S中任…

软件设计师笔记系列(四)

&#x1f600;前言 随着技术的快速发展&#xff0c;软件已经成为我们日常生活中不可或缺的一部分。从智能手机应用到大型企业系统&#xff0c;软件都在为我们提供便利、增强效率和创造价值。然而&#xff0c;随之而来的是对软件质量的日益增长的关注。软件的质量不仅关乎其功能…

C语言中的虚拟地址

虚拟地址 虚拟地址空间 对于操作系统而言&#xff0c;每个进程所得到的虚拟地址都在一个独立的固定的范围内&#xff0c;不会超过这个范围&#xff0c;我们把这个范围称为虚拟地址空间。所谓的虚拟地址空间本质就是一个地址范围&#xff0c;表示程序的寻址能力。对于32位系统…

Python 在 JMeter 中如何使用?

要在JMeter中使用Python&#xff0c;需要使用JSR223 Sampler元素来执行Python脚本。使用JSR223 Sampler执行Python脚本时&#xff0c;需要确保已在JMeter中配置了Python解释器&#xff0c;并设置了正确的环境路径。 1、确保JMeter已安装Python解释器&#xff0c;并将解释器的路…

时序预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元时间序列预测

时序预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向…

Jenkins学习笔记6

开发者开发代码一般会使用IDE集成开发工具&#xff08;比如pycharm这种),那么使用pycharm开发的代码能否直接利用自动发布系统发布到业务服务器上呢&#xff1f; 答案是肯定的。 然后进行下测试&#xff1a; 那说明SSH免密是成功的。 将Pycharm修改为原来的界面&#xff0c;然…

抖音短视频矩阵系统搭建

企业在进行短视频矩阵运营时&#xff0c;搭建一个矩阵号是非常必要的。矩阵号可以绑定多个不同平台的账号&#xff0c;批量制作和定时发布短视频&#xff0c;提高企业的曝光量和粉丝互动。但是&#xff0c;如何搭建一个有效的短视频矩阵号呢&#xff1f;以下是几个关键步骤。 一…

STM32 NVIC中断优先级管理通过结构图快速理解

STM32 NVIC中断优先级管理通过结构图快速理解 &#x1f4d1;抢占优先级和响应优先级基本常识 &#x1f33f;抢占优先级的级别高于响应优先级。&#x1f33f;抢占优先级数值编号越小&#xff0c;所代表的优先级就越高&#xff1b;同理&#xff0c;响应优先级也是如此。&#x1…

为什么要选择Spring cloud Sentinel

为什么要选择Spring cloud Sentinel &#x1f34e;对比Hystrix&#x1f342;雪崩问题及解决方案&#x1f342;雪崩问题&#x1f342;.超时处理&#x1f342;仓壁模式&#x1f342;断路器&#x1f342;限流&#x1f342;总结 &#x1f34e;对比Hystrix 在SpringCloud当中支持多…

使用 FHE 实现加密大语言模型

近来&#xff0c;大语言模型 (LLM) 已被证明是提高编程、内容生成、文本分析、网络搜索及远程学习等诸多领域生产力的可靠工具。 大语言模型对用户隐私的影响 尽管 LLM 很有吸引力&#xff0c;但如何保护好 输入给这些模型的用户查询中的隐私 这一问题仍然存在。一方面&#xf…

《从菜鸟到大师之路 Redis 篇》

《从菜鸟到大师之路 Redis 篇》 &#xff08;一&#xff09;&#xff1a;Redis 基础理论与安装配置 Nosql 数据库介绍 是一种 非关系型 数据库服务&#xff0c;它能 解决常规数据库的并发能力 &#xff0c;比如 传统的数据库的IO与性能的瓶颈 &#xff0c;同样它是关系型数据…

Android 11.0 禁止二次展开QuickQSPanel设置下拉QSPanel高度

1.前言 在11.0的系统定制化需求中,在进行systemui的ui定制开发中,有些产品中有需求对原生systemui下拉状态栏中的二次展开QSPanel修改成 一次展开禁止二次展开,所以就需要修改QuickQSpanel的高度,然后在QuickQsPanel做定制,然后禁止二次展开就可以了 如图: 2.禁止二次展开…

32.3D文本旋转动画效果

特效 源码 index.html <!DOCTYPE html> <html> <head> <title>CSS 3D Text Rotation</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body><div class=&quo…

C++实现观察者模式(包含源码)

文章目录 观察者模式一、基本概念二、实现方式三、角色四、过程五、结构图六、构建思路七、完整代码 观察者模式 一、基本概念 观察者模式&#xff08;又被称为模型&#xff08;Model&#xff09;-视图&#xff08;View&#xff09;模式&#xff09;是软件设计模式的一种。在…

5G通信与蜂窝模组之间的关系

5G通信是第五代移动通信技术的简称&#xff0c;它代表了一种新一代的无线通信技术标准。5G通信的主要目标是提供更高的数据传输速度、更低的延迟、更大的网络容量以及更可靠的连接&#xff0c;以支持各种新兴应用和服务&#xff0c;包括高清视频流、虚拟现实、物联网&#xff0…

【软考中级】网络工程师:7.下一代互联网

IPv4问题与改进 IPv4存在以下著名的问题&#xff1a; 网络地址短缺&#xff08;32位&#xff09;以二进制数串表示&#xff0c;v4仅有43亿个地址&#xff0c;而IPv6有128位&#xff0c;且以十六进制数串表示。&#xff08;现在还能用v4得益于NAT地址转换&#xff09;地址分配…

pwn学习(3)BUUCTF-rip

下载文件&#xff0c;查看文件信息 IDA64打开&#xff0c;发现危险函数gets(),可以判断存在栈溢出漏洞 接着查看fun()函数&#xff0c;发现是system函数&#xff0c;system是C语言下的一个可以执行shell命令的函数 接下来思路就清晰了&#xff0c;需要用gets函数获取一个长字符…

电力安全智慧云平台:引领更安全的用电新时

电力能源是人类社会不可或缺的重要资源&#xff0c;其安全稳定供应关系到各行各业的正常运转和千家万户的生活质量。然而&#xff0c;随着电力使用的普及&#xff0c;电力安全问题也日益凸显&#xff0c;一旦发生电力事故&#xff0c;不仅会造成巨大的经济损失&#xff0c;还会…