如何基于 echarts 实现区间柱状图(包括横向)?
始终如一
需求
需要利用 echarts 实现区间柱状图,效果如下:

效果来源于:g2-柱状图
借鉴 echarts 的 demo
demo 区间实现思路(视觉欺骗)
- 通过 bar 的 series 的
stack(堆叠)属性,实现柱子堆叠。 - 再通过 bar 的 series 的 itemStyle 设置作为辅助的柱子隐藏(透明度为 0)。
demo 不满足的点
- bar 的 label 显示:未区间
- bar 的 tooltip 显示:未区间
- 不支持多数据项
最终实现思路
- 通过 bar 的 series 的
stack(堆叠)属性,实现柱子堆叠。 - 通过 bar 的 series 的 itemStyle 设置作为辅助的柱子隐藏(透明度为 0)。
- 通过 bar 的 series 的 markPoint 用于显示区间范围的最小值。
- 通过将区间数据放入 data, 处理 tooltip 显示区间数值。
- 考虑到区间[负值,正值]的情况,需要再利用 series 的一个 item 来显示负值的部分。
实现效果
- 基于最终思路实现效果


- 最终思路缩减版-没处理负值的效果,即没有最终实现思路的第 5 步


基础思路实现 - 利用一个新的 series item 的 label 显示区间范围的最小值。

name + 值为时间 - 利用
type: custom自定义实现效果

遇到的问题:
- bar stack 堆叠属性 遇上 轴
type:"time"时会失效,因此有了 其他方案实现2 探索 - 提供的区间数据含 负值 时,也会异常,无法正常显示负值的柱子(需要再特殊处理)。如温度区间,效果来源highcharts-columnrange
代码映射
- 最终思路实现:demo1-bar-range-negative.html
- 最终思路缩减版实现:demo1-bar-range-optimize.html
- 基础思路实现:demo1-bar-range.html
- name + 值为时间:demo2-custom-range-status.html
源码
实践代码哦
如何基于 echarts 实现区间柱状图(包括横向)?的更多相关文章
- 基于Echarts的中国地图数据展示
发布时间:2018-10-31 技术:javascript+html5+canvas 概述 基于echarts的大数据中国地图展示,结合API定制,开发样式,监听鼠标事件,实现带参数路由跳转等 ...
- 前端统计图 echarts 实现简单柱状图
前端统计图 echarts实现简单柱状图 1. 引入 ECharts <!DOCTYPE html> <html> <head> <meta charse ...
- vue可视化图表 基于Echarts封装好的v-charts简介
**vue可视化图表 基于Echarts封装好的v-charts** 近期公司又一个新的需求,要做一个订单和销售额统计的项目,需要用到可视化图表来更直观的展示数据.首先我想到的是Echarts,众所周 ...
- 高速基于echarts的大数据可视化
[Author]: kwu 高速基于echarts的大数据可视化,echarts纯粹的js实现的图表工具.高速开发的过程例如以下: 1.引入echarts的依赖js库 <script type= ...
- 基于Echarts的股票K线图展示
发布时间:2018-10-31 技术:javascript+html5+canvas 概述 基于echarts的股票K线图展示,只需引用单个插件,通过简单配置,导入数据,即可实现炫酷复杂的K线 ...
- 如何基于 echarts 在柱状图或条形图上实现转换率?(有想法吗?)
目录 需求 探索一 探索二 探索三 转换实践思路1 转换实践思路2 其他思路 探索四(揭晓答案) 答案篇说明 backgroundColor 用法 双柱合一 始终在轴的中间 百分在变,但是距离轴的距离 ...
- 【前端统计图】echarts实现简单柱状图
图片.png <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- echarts renderItem-在区间段内展示连续数据
一.需求背景: 贴图说明:要求数据在不同类型的区间段内展示. 二.实现思路及代码 实现方法: 利用echarts的自定义配置:option.series[i].type='custom'中的rende ...
- 基于echarts 24种数据可视化展示,填充数据就可用,动手能力强的还可以DIY(演示地址+下载地址)
前言 我们先跟随百度百科了解一下什么是"数据可视化 [1]". 数据可视化,是关于数据视觉表现形式的科学技术研究. 其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来 ...
随机推荐
- Java实现二分图的最大匹配
1 问题描述 何为二分图的最大匹配问题? 引用自百度百科: 首先得说明一下何为匹配: 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配. 极大匹 ...
- Spring基本介绍
一:Spring是什么 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,它以IOC控制反转和AOP面向切面编程为核心,提供了展现层 Spring MVC 和持久层 ...
- IDEA2020年激活码
若出现无法使用,激活失败的情况,可以关注公众号:凌晨四点的程序员,回复消息"IDEA"持续更新最新激活码 2020年05月26更新(2020年6月份) OI7FTW2137-eyJ ...
- 关于VMware虚拟机启动EFI/UEFI支持
作为较新计算机和操作系统用于引导计算机的技术,可扩展固件接口 (EFI) 正在取代 BIOS.EFI 有时称为统一可扩展固件接口 (UEFI). 使用VMware创建虚拟机,默认还是会使用传统的BIO ...
- 分布式ID总结
分布式ID 生成的ID使用场景 几乎所有的业务系统,都有生成一个记录标识的需求,例如:message_id, order_id.这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(clus ...
- 用struts的action运行jsp页面
struts是开源框架.使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间.如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的 ...
- 一台电脑如何使用多个git账号?
git相信大家都在用,一般公司有一个账号,放公司自己架的服务器中,员工自己还有一个github或者gitee的账号,存放自己的一些私有代码.本篇文章总结一下,本人在公司开发机上,使用多个git账号的干 ...
- VMWare虚拟机开启时显示模块“Disk”启动失败的解决方案
找到虚拟机所在的目录, 将 .vmx文件打开 将文件vmci0.present = "TRUE"改为 vmci0.present = "FALSE" 删除以.l ...
- cb09a_c++_顺序容器的操作2-在顺序容器中添加元素_插入数据
cb09a_c++_顺序容器的操作2在顺序容器中添加元素vector不能向前插入数据,list可以用insertc.push_back(t);c.push_front(t);c.insert(p,t) ...
- JDK开发环境的搭建和环境变量的配置
首先博主先说一下JDK.JRE.JVM的区别和联系.我们正常运行程序的话只需安装JRE就行啦,如果要编译运行Java程序就得需要JKD下的bin目录下的编译工具. JDK -- java develo ...