echarts象形柱图实现电量效果柱状图

news2024/11/29 8:58:11

首先听到象柱形图pictorialBar,你会不会觉得很陌生?

然后,看看官网的示例,显示效果很抽象,觉得很不实用,真的有人会用到吗?

但是,我再让你看看下图,类似电量格效果的柱状图,是不是会在项目中经常用到?

好了,话不多少,接下来,就一步一步展示如何用象形柱图实现电量效果柱状图。

目录

1、官网找例子

 2、改造示例

3、全部代码

4、初始效果和完成效果对比


1、官网找例子

 首先到Echarts官网找到最简单基础的柱状图

官网初始option

 我们将option复制到代码中,

得到了基础效果如下图:

 2、改造示例

改造的基本思路:将type由bar变为pictorialBar,再修改设置与pictorialBar相关的配置项即可

先将type由bar变为pictorialBar,效果如下

为什么是椭圆效果呢?我们去官网配置项中找答案,

 看到这几种标记类型还不是很抽象,没关系,我们一个一个看下效果

 

 

 

 

 看了这么多,那么我们要用到的是哪一个呢????没错,就是rect,你答对了吗。

那么怎么分割呢?

简单理解,其实象形柱就是把要表示的数据用symbol来图形化,因此,就需要设置symbol。

如大小、间隔、颜色、重复……

看下官网例子,你就大概明白每个配置项能实现的效果了,

 因此我们设置一下想要实现效果的配置项

效果如下图↓

 

 接着再改变一下颜色,设置一下label就完成了

 效果如下图↓

 但是,还有一个小细节需要注意,为了能够精确形象表示数据量,需要设置一下symbolClip为true。 

增加symbolClip的设置,显示效果更为细节↓

 

3、全部代码

<template>
    <!--实现电量效果柱形图或者说分割柱形图-->
    <div class="con_bg">
        <div class="barChart" ref="barChart">
        </div>
        <!--echarts实例代码-->
        <div class="barChart" ref="barChartDemo2">
        </div>

    </div>
</template>
<script>
import * as echarts from "echarts";
var chart = "";
var chartDemo2 = "";

export default {
    name: "bar",
    data() {
        return {};
    },
    mounted() {
        this.showbarChart();
        this.showbarChartDemo2();
    },
    methods: {
        showbarChart() {
            if (chart != null && chart != "" && chart != undefined) {
                chart.dispose();
            }
            chart = echarts.init(this.$refs.barChart);
            //官网样例
            let option = {
                xAxis: {
                    type: "category",
                    data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
                },
                yAxis: {
                    type: "value",
                },
                series: [
                    {
                        data: [120, 200, 150, 80, 70, 110, 130],
                        type: "bar",
                    },
                ],
            };
            chart.clear();
            chart.setOption(option);

            window.addEventListener("resize", () => {
                chart.resize();
            });
        },

        showbarChartDemo2() {
            if (
                chartDemo2 != null &&
                chartDemo2 != "" &&
                chartDemo2 != undefined
            ) {
                chartDemo2.dispose();
            }
            chartDemo2 = echarts.init(this.$refs.barChartDemo2);
            //非渐变电量格效果
            let demoOption2 = {
                xAxis: {
                    type: "category",
                    data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
                },
                yAxis: {
                    type: "value",
                },
                series: [
                    {
                        data: [120, 200, 150, 80, 70, 110, 130],
                        type: "pictorialBar",
                        symbol: "rect",
                        symbolMargin: "2", //图形的两边间隔
                        symbolSize: [18, 4], //图形大小
                        symbolRepeat: "true", //是否重复
                        itemStyle: {
                            //设置颜色
                            color: "#F3D75C",
                        },
                        label: {
                            //设置label显示
                            show: true,
                            position: "top",
                            distance: 10,
                            fontSize: 12,
                            color: "#F3D75C",
                        },
                        symbolClip: true, //是否裁剪
                    },
                ],
            };
            chartDemo2.clear();
            chartDemo2.setOption(demoOption2);

            window.addEventListener("resize", () => {
                chartDemo2.resize();
            });
        },
    },
};
</script>
<style scoped>
.con_bg {
    background-color: #1c242b;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    flex-flow: row wrap;
}
.barChart {
    width: 424px;
    height: 352px;
    border: 1px solid white;
    background-image: url("/img/ld.png");
    margin: 20px auto;
}
</style>

4、初始效果和完成效果对比

以上代码,实现效果如下↓

 【题外话】:可能会有小伙伴说,既然如此,想要实现渐变效果,是不是只需要设置下color即可

实现效果如下图↓,也就是说,这里的渐变效果是针对symbol的,而不是整体的。

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

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

相关文章

访问 docker 容器的 tensorboard

demo代码示例 tensorboard --logdirlog_path :return:from torch.utils.tensorboard import SummaryWriterlogger SummaryWriter(log_dir./log/boardtest/)loss [5.5, 4.1, 4.2, 3.2, 3.3, 2.9, 2.5, 1.2, 0.8, 0.6] steps [1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000…

Spark SQL数据源:JDBC

文章目录 一、Spark SQL读取关系数据库二、Spark SQL JDBC连接属性三、创建数据库与表&#xff08;一&#xff09;创建数据库&#xff08;二&#xff09;创建学生表&#xff08;二&#xff09;创建成绩表 四、读取和写入数据库表&#xff08;一&#xff09;利用dbtable属性读取…

APScheduler任务调度快速入门实践

什么是APScheduler APScheduler是一个用于任务调度和定时任务管理的Python库。它提供了一个简单而灵活的方式来定义、调度和执行任务。 APScheduler的架构由以下几个核心组件组成&#xff1a; 调度器&#xff08;Scheduler&#xff09;&#xff1a;调度器负责管理任务的调度和…

初探core组件:OpenCV数据结构与基本绘图

OpenCV数据结构与基本绘图 1. 基础图像容器 Mat 1.1 数字图像存储概述 我们有多种方法从现实世界获取数字图像&#xff1a;数码相机、扫描仪、计算机断层扫描和磁共振成像等等。在每一种情况下&#xff0c;我们&#xff08;人类&#xff09;看到的都是图像。然而&#xff0c…

不可错过的Markdown编辑利器:跟随Typora,书写卓越

在现代社会中&#xff0c;快速而优雅地处理文本已经成为许多人的必备技能。尤其是对于程序员、研究者和专业撰稿人来说&#xff0c;拥有一款功能强大且易上手的文本编辑器显得尤为重要。Typora正是这样一款受到广泛好评的Markdown编辑器&#xff0c;它以简洁的界面、丰富的功能…

《实战AI低代码》AI大模型在低代码开发项目管理中的实战经验总结

目录 一、WBS任务分解 二、知识库自动生成 三、实施风险预估 随着ChatGPT大火之后,新的AI技术和模型被证明已经具备的很高的使用价值。 诸如Copilot、Midjourney、notion等产品通过AI的加持,已经让用户能够充分地在应用层面感受到了便利性。 原本几天的工作通过AI模型,可…

Web实验三 CSS基本网页布局实验

实验原理 通过定义css样式&#xff0c;理解css属性以及页面真整体结构布局的方法及设计思想。 实验目的 理解并掌握多种css选择器的使用方法 理解并掌握后代选择器的作用及使用设计方法 理解并掌握伪类的作用、意义及使用方法 理解并掌握基于div容器页面布局的方法 理解并掌握…

TANL:STRUCTURED PREDICTION AS TRANSLATION BETWEEN AUGMENTED NATURAL LANGUAGES

原文链接&#xff1a;https://openreview.net/pdf?idUS-TP-xnXI ICLR 2021 介绍 问题 大多数解决结构性预测的方法都是在预训练模型上对特定的任务进行训练&#xff0c;存在两个局限性&#xff1a; 1&#xff09;判别分类器不能很好地利用预训练模型中对于该任务标签的已知知…

这个事实已冲击并颠覆我的认知:时间不多了

我们都知道人生短暂&#xff0c;可到底是怎么个短法&#xff1f; 十年是个模糊的表述&#xff0c;我们很难在脑海里想象十年是什么概念&#xff0c;但如果换成十个冬天&#xff0c;跟父母在一起十天&#xff0c;这样描述就会更直观些。 WaitButWhy对人生的时间进行了拆解&#…

Cesium教程(十九):Cesium粒子系统

Cesium教程(十九):Cesium粒子系统 1、粒子系统 1.1 什么是粒子系统 Cesium粒子系统是一种模拟复杂物理效应的图形技术,是由小图像组成的集合,当他们在一起形成更复杂的“模糊”对象时,会形成火、烟、云或烟火等。 1.2 初始粒子系统 效果预览 完整代码 <!DOCTYPE htm…

day05--java高级编程:Junit单元测试框架、泛型,集合:集合数组互转,迭代器,增强for循环,集合工具类,数据结构简介

补充&#xff1a;Junit单元测试框架 1. 简介 概述&#xff1a; JUnit是使用Java语言实现的单元测试框架&#xff0c;它是开源的&#xff0c;Java开发者都应当学习并使用JUnit编写单元测试。此外&#xff0c;几乎所有的IDE工具都集成了JUnit&#xff0c;这样我们就可以直接在…

CoreDX DDS应用开发指南(9)服务质量QoS

12 服务质量QoS DDS的强大功能之一是支持各种服务质量(QoS)设置。QoS设置允许应用程序开发人员定制发布者、订阅者的行为以及它们之间的通信。 从DomainParticipantFactory到DataReader和DataWriter,大多数DDS实体都有一组适用的QoS设置。QoS设置包含在一个结构中。 例如,D…

【Flutter】Flutter 如何获取当前路由

文章目录 一、前言二、Flutter 路由基础知识1. 什么是路由2. Flutter 中的路由管理 三、如何在 Flutter 中获取当前路由1. 使用 NavigatorState 类2. 使用 ModalRoute 类 四、代码示例1. 一个简单的获取当前路由的例子2. 实际业务场景中获取当前路由的例子 五、完整可运行的代码…

什么才是好的测试用例?

对于测试用例来讲&#xff0c;“好的”测试用例一定是一个完备的集合&#xff0c;能够覆盖所有的等价类以及各种边界值&#xff0c;而跟能否发现缺陷无关。 如果把测试软件看做一个池塘&#xff0c;软件缺陷是池塘中的鱼&#xff0c;建立测试用例集的过程就像是在编织一张捕鱼…

新能源驱动电机NVH开发研究

摘要&#xff1a; 本文介绍了新能源驱动电机行业发展现状&#xff0c;详细论述了目前行业内主流电机&#xff1a; 1、驱动电机现状 驱动电机是新能源车辆和混合动力车辆的核心动力源&#xff0c;基于电磁感应效应&#xff0c;驱动电机将整车提供的电能转化为机械能&#xff0c…

一文3000字从0到1用【 pytest+excel】实现自动化接口测试

项目结构 1.common 存放公用方法 login.py 前置条件类public.py 获取文件指定目录类 复制代码 2. base 存放底层方法类 method.py复制代码 3. data 存放数据 data.xls 复制代码 4. tests 存放用例类 pytest test_excel.py5. utils存放工具类operationExcel.py 复制代码 代…

谷歌高级语法有哪些,以及如何开发国外客户

谷歌高级语法指令常用的有下面几个&#xff1a; site、inurl、intitle、intext、filetype、link、index of、related 谷歌高级语法用法&#xff1a; 1.Site的三种常用用法 示例&#xff1a;site域名&#xff08;site:org&#xff09; site域名contact(site:org contact) 产…

HarmonyOS元服务端云一体化开发快速入门(上)

一、前提条件 您已使用已实名认证的华为开发者帐号登录DevEco Studio。 请确保您的华为开发者帐号余额充足&#xff0c;账户欠费将导致云存储服务开通失败。 二、选择云开发模板 1.选择以下任一种方式&#xff0c;打开工程创建向导界面。 如果当前未打开任何工程&#xff0c…

【宿舍管理系统】注册登录页面的实现(前端)

目录 一.创建一个jsp文件&#xff0c;命名为login.jsp 代码&#xff1a; 1. 2. 3. 4. 5. 6. ​编辑 二. 创建一个css文件&#xff0c;并命名为style.css 1. ​编辑效果如下&#xff1a; ​编辑 代码解析&#xff1a; 2. 效果如下&#xff1a; 代码解析&#xff1…

如何做好《关键信息基础设施安全保护要求》提到的收敛暴露面?

5月1日&#xff0c;《信息安全技术 关键信息基础设施安全保护要求》&#xff08;GB/T 39204-2022&#xff09;国家标准正式实施。该标准作为关键信息基础设施安全保护标准体系的构建基础&#xff0c;提出了关键信息基础设施安全保护的三项基本原则&#xff0c;为运营者开展关键…