点击echarts柱状图动态改变数据项颜色样式

2023-11-18

首先附上参考文章连接:https://blog.csdn.net/weixin_42870683/article/details/103528254添加链接描述

今天来实现点击echarts柱状图,动态改变柱状图数据项颜色样式的案例。只要认真做,很容易学会~
在这里插入图片描述

  1. 首先引入ECharts.js文件
<!-- 引入 echarts.js -->
<script src="https://www.echartsjs.com/examples/vendors/echarts/echarts.min.js?_v_=1571424732409"></script>
  1. 为ECharts准备一个div的绘图区域
 <div id="main" style="width: 600px;height:400px;"></div>
  1. 在准备好的div中初始化ECharts组件
var myChart = echarts.init(document.getElementById('main'));
  1. 配置ECharts数据项(为了简单起见,这里使用静态数据)
var option = {
    title: {
        text: 'ECharts 入门示例'
    },
    tooltip: {},
    legend: {
        data: ['销量']
    },
    xAxis: {
        data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20],
        itemStyle: {
            normal: {
                label: { show: true },
                color: "#c23531"
            }
        },
    }]
};

上述代码中,series的itemStyle 参数可以设置诸如阴影、透明度、颜色、边框颜色、边框宽度等属性。我们在itemStyle设置柱状图的color为 “#c23531”。

  1. 使用刚指定的数据项配置ECharts图表。
myChart.setOption(option);

这时,我们就得到了一普通的数据曲线图,但此时点击还不能改变颜色
在这里插入图片描述
6. 接下来就是最重要的一步,给ECharts柱状图添加点击事件,当我们点击数据项是,会触发某些事件。也就是记录我们点击的柱子的名称,然后重新渲染ECharts图,渲染同时把对应的柱子改个颜色。
可是在渲染的时候如何改颜色呢?……
这里我们最容易想到,**用一个变量去记录点击柱子的名称,然后在绘制曲线遍历数据项的时候,判断当前遍历的柱子的名字是否于我们点击柱子的名字相同。**很简单的一个if判断。

var checkName='';//点击柱子的名字//添加在代码最上面
myChart.on('click',function(params){
   //点击的柱子的名称
   checkName = params.name;
   //柱形图重构
    myChart.setOption(option);
})
  1. 所以,既然柱子颜色是根据name来判断的,那判断肯定是加在 color:"……" 这里,于是,我们修改数据项series中这是颜色的代码。
color: function (params){
    //通过判断选中的名字改变柱子的颜色样式
     if(checkName === params.name){
         return '#2f4554';  //点击后的颜色
     }else {
         return '#c23531';  //默认颜色
     }

保存,运行,大功告成!是不是很简单~

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点击echarts柱状图动态改变数据项颜色样式 的相关文章

  • 按 Enter 键提交消息?

    我正在开发一个基于本教程使用 Meteor 构建的聊天应用程序 http code tutsplus com tutorials real time messaging for meteor with meteor streams net
  • 为什么人们将自己的自定义/用户函数添加到 jQuery 对象中? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我见过人们将自己的自定义 用户功能添加到jQuery目的 例如 myUserFunc function regular JS code 你为什么
  • jQuery 在附加元素后立即返回 div 元素的高度 0

    我有一个浮动 div 最初没有内容 我使用 jQuery 将一组元素附加到 div 然后立即调用原始 div 的 height 方法 我添加的元素在样式表中具有定义的最小高度 而浮动 div 则没有 问题是 当我在原始 div 上调用 he
  • 如何使用 JavaScript 压缩文件?

    有没有办法使用 JavaScript 来压缩文件 例如 在雅虎邮件中 当您选择下载电子邮件中的所有附件时 它会被压缩并下载到单个 zip 文件中 JavaScript 能够做到这一点吗 如果是这样 请提供一个编码示例 我发现这个图书馆叫js
  • 如何使用 javascript 将我的域名字母大写?

    假设我的域名是www hello com 如何使用 jQuery JavaScript 使浏览器的 URL 栏看起来像 www HELLO com 您无法更改浏览器地址栏中显示的内容 这是一项基本的安全功能 您可以使您的域名全部大写 并将页
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • FileReader 在 Ionic 2 中未触发 onloadend

    我正在尝试使用 cordova file plugin 读取本地文件 目前我可以读取本地目录的内容并选择单个文件 但我在获取文件内容时遇到问题 这是我的函数 从列表中选择文件后单击按钮即可调用该函数 import window resolv
  • 如何将值从孩子的孩子传递给父母?

    我有一个父组件 有一个子组件 它也有一个子组件 Parent Child One child of parent Child Two child of child 当在子二中定义一个值时 我使用回调将该值传递给子一 但我也想将相同的值传递回
  • 使标签充当输入按钮

    我怎样才能做一个 a href http test com tag test Test a 就像表单按钮一样 通过充当表单按钮 我的意思是 当单击链接执行操作时method get 或 post 以便能够通过 get 或 post 捕获它
  • 无需画布/显示器即可拍摄隐形 WebRTC/视频照片

    我读了拍摄静态照片 https developer mozilla org en US docs Web API WebRTC API Taking still photos来自 MDN 的描述如何从网络摄像头捕获照片 使用视频元素和med
  • Xpath 获取 if href 包含字符串的一部分

    您好 我尝试获取包含 href p random tagged see 的所有元素 这是我的路线 div preceding h2 text Most recent div div a href p tagged see 我该如何修复此代码
  • 使用外部按钮选择下一个/上一个单选按钮

    我正在制作一种幻灯片形式 当用户单击下一张图像时 还必须选择单选按钮 我的滑动功能可以正常工作 下一个按钮 也可以工作 但我有点坚持使用 上一个 按钮 不明白为什么它不起作用 fiddle http jsfiddle net V4tdx 这
  • 鼠标输入时反应显示按钮

    我有一个反应组件 它包含如下方法 mouseEnter console log this is mouse enter render var album list const albums this props if albums user
  • 反转比例函数

    这对我来说很有趣 看下面的D3代码 var scale d3 scale linear domain 100 500 range 10 350 scale 100 Returns 10 scale 300 Returns 180 scale
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 从 node.js 创建对 AWS ES 实例的有效签名请求

    我试图找到一个示例 说明如何连接到 Node js 中的 AWS ES 实例 然后通过一个简单的请求访问 ES 集群 我正在尝试使用elasticsearch节点包 https www npmjs com package elasticse
  • 如何在 JavaScript 中将日期时间微格式转换为本地时间?

    我有一个页面当前正在使用日期时间微格式 http microformats org wiki datetime design pattern显示时间戳 但我只显示我自己的时区的人类可读时间
  • 如何使用node.js获取屏幕分辨率

    我需要使用 node js 获取屏幕分辨率 但以下代码不起作用 var w screen width var h screen height 这也行不通 var w window screen width var h window scre
  • gjs 如何使用 g_data_input_stream_read_line_async 在 Gnome Shell 扩展中读取套接字流

    我正在尝试编写一个 Gnome Shell 扩展 通过 Socket 服务器与 Arduino 进行通信 服务器和 Arduino 运行良好 但我陷入了监听传入服务器消息的扩展代码 因为我需要一种非阻塞方法 所以使用异步读取行 https
  • 了解客户端文件的对象 URL 以及如何释放内存

    我在用createObjectURL获取本地图像文件的引用 URL 当我完成文件 图像后 我打电话revokeObjectURL释放该内存 一切对我来说都很好 但我只是想确保我释放了我能释放的所有内存 我检查后出现了我的担忧chrome b

随机推荐

  • Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具 支持iOS和Android 它可以用来测试任何类型的移动应用 原生 网络和混合 作为一个跨平台的工具 你可以在不同的平台上运行相同的测试 为了实现跨平台的功能 Appium使用了供应商提供
  • python 抖音采集_python爬取抖音视频的实例详解

    import requests import json import re import os from pprint import pprint as pp import queue class DouYin header accept
  • 全书简介和作者寄语

    巨硬的NumPy 巨硬的NumPy 教程包括两部分 从小白到入门 和 从入门到熟练 从小白到入门 旨在帮助没有基础的同学快速掌握 numpy 的常用功能 保证日常绝大多数场景的使用 从入门到熟练 目的是帮助有进一步需要的同学对 numpy
  • (六)Kubernetes - 手动部署(二进制方式安装)

    Kubernetes 手动部署 5 1 部署Nginx Keepalived高可用负载均衡器 1 1 安装软件包 Master1 Master2 1 2 Nginx配置文件 主备相同 1 3 keepalived配置文件 Master1 1
  • mysql jpa 不要自动建表,如何让Hibernate在与JPA一起使用时自动在数据库中创建表?...

    I am new to JPA And for now I am trying to understand standard examples I was reading online and saw a few stackoverflow
  • vue面试题汇总

    HTML篇 CSS篇 JS篇 TypeScript篇 React篇 微信小程序篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 含答案超详细 Vue TypeScript React 微信小
  • pytorch---之item()

    torch Tensor item 坑 注意只能是一个值 适合返回loss acc
  • 设计模式概念学习

    文章目录 创建类型 单例模式 饿汉 懒汉 openbmc项目实际应用 工厂方法 简单工厂方法 openbmc项目实际应用 抽象工厂 以下为学习时对各种设计模式的简单理解 还没有深入学习和实际应用 推荐1个 很棒的网站学习设计模式 每个模式都
  • 01-windows下python爬取网页上的图片

    1 首先下载python 安装环境 pycharm anaconda的下载与安装 移步各个主页下载 一键式安装 pycharm http www jetbrains com pycharm anaconda https www anacon
  • 什么是算子?

    什么是算子 在知道什么是算子之前我们还需要知道一些其他的相关概念 大概来说 算子是一个函数空间到函数空间上的映射O X X 广义上的算子可以推广到任何空间 如内积空间等 映射 从一个拓扑空间到另一个拓扑空间的对应关系 对于每一个x 都有唯一
  • 【应用层2】Http协议

    一 简介 Http 即超文本传输协议 一种建立在 TCP 上的无状态连接 属于应用层协议 http传输的内容都是明文的 不安全的 Http 协议用于客户端与服务器端之间的通信 它规定了客户端与服务端之间的通信格式 包括请求和响应的格式 Ht
  • Springboot中配置activeMQ持久化

    一 activeMQ数据库持久化配置 ActiveMQ持久化的三种方式 我们采用数据库的方式来进行持久化 1 Memory 消息存储 基于内存的消息存储 2 基于日志消息存储方式 KahaDB是ActiveMQ的默认日志存储方式 它提供了容
  • MYSQL刷新字段:“指定字符”+年月日+三位流水号

    项目场景 项目场景 生成编号 指定字符 年月日 三位流水号 需求阐述 已经写完了生成流水号的代码 但是之前的数据并没有此类编码 所以需要把数据库新建的编码字段进行刷新 刷新数据的逻辑 根据指定字符 LSH 数据的创建时间 三位流水号进行拼接
  • 解决mysqld服务启动失败

    原因如下 1 进程占用 首先查看下mysql进程 ps aux grep mysql 有进程号占用了 kill 这个进程号 再重启服务 2 所有者和所属组为mysql 查看 usr local MySQL data mysqld pid所有
  • android功能代码--Android报表控件achartengine介绍(二)

    Android报achartengine再详细的介绍可以查看 http blog csdn net lk blog article details 7642751 在achartengine中两种创建报表的方式 1 是在Activity中直
  • ARP - Address Resolution Protocol, 地址解析协议

    1 概述 1 1 作用 ARP Address Resolution Protocol 地址解析协议 将IP 地址解析为以太网MAC 地址的协议 在局域网中 当主机或其它网络设备有数据要发送给另一个主机或设备时 它必须知道对方的网络层地址
  • 特定场景小众领域数据集之——焊缝质量检测数据集

    写这篇文章最大的初衷就是最近频繁的有很多人私信问我相关的数据集的问题 基本上都是从我前面的目标检测专栏里面的这篇文章过来的 感兴趣的话可以看下 轻量级模型YOLOv5 Lite基于自己的数据集 焊接质量检测 从零构建模型超详细教程 保姆级的
  • 例说hg(六)———— hg branch 创建分支

    开篇 branch 分支 應該也是 Hg 最重要的技能之一 在一個多人專案的開發過程中我們有時候要開發新功能 有時候是要修正某個Bug 有時候想要測試某個特異功能能不能 work 這時候我們通常都會從主 branch 再開出一條新的 bra
  • 小白的成长轨迹(二):披荆斩棘,未来可期

    大家好 我是孤焰 一名双非本科的大四学生 又是一年的1024 我坚持撰写博客已经为期一年 很感谢大家一直以来的支持 在这一年期间这位名为 孤焰 的少年又有哪些成长呢 下面便请细听分说 希望这些成长经历可以对正在看这篇文章的小可爱们有一些帮助
  • 点击echarts柱状图动态改变数据项颜色样式

    首先附上参考文章连接 https blog csdn net weixin 42870683 article details 103528254添加链接描述 今天来实现点击echarts柱状图 动态改变柱状图数据项颜色样式的案例 只要认真做