所谓Label,就是在图表上面显示的那个数字。

但有的时候我们需要柱状图堆叠。

那如果我们需要所有数字都在外面,并且以 320/210/310/410/1320 这样的形式显示呢?

那么 echarts 本身提供的属性就没有办法了。

我们就需要自己写方法算一下。

  // 特殊label
getParallelLabel = (normalData) => {
let labelResult = []
// 注入数据
normalData.sData.forEach((item) => {
item.data.forEach((item_2, index_2) => {
if (!labelResult[index_2]) {
labelResult[index_2] = (item_2 + '/')
} else {
labelResult[index_2] += (item_2 + '/')
}
})
})
// 去掉最后一个
return labelResult.map(item => item.substring(0, (item.length-1)))
}

然后在渲染时调用这个方法。

    // 判定是否需要 label
if (settingData.labelFlag && !settingData.labelFlag.mode) {
// ...
} else if (settingData.labelFlag && settingData.labelFlag.mode && settingData.labelFlag.mode === "parallel") {
// 计算自定义label字符
const labelResult = this.getParallelLabel(normalData) baseSeriesObject.label = {
normal: {
fontSize:16,
show: true,
position: settingData.xyType === 'x' ? 'top' : 'right',
color:'rgba(9,178,215,1)',
formatter:(params) => {
// console.log(params) if (params.seriesIndex === 2) {
return labelResult[params.dataIndex]
} else {
return ""
}
}
}
}
}

因为这个项目是 react 做的,所以我写了一个 echarts 组件。

这样,我在页面里调用这个组件的时候,就可以根据需要传一些判断用的属性,比如:

      settingData:{
xyType:'y',
stackFlag:true,
color: ['rgba(68,238,224,1)', 'rgba(17,215,255,1)', 'rgba(251,203,73,1)'],
barWidth:"20%",
backgroundFlag:false,
legendFlag:true,
labelFlag:{
mode:"parallel"
},
grid:{
top:50,
left:125
}
}
settingData.labelFlag.mode === "parallel"

就是我自定义的属性。

以上。

echarts 实战 : 怎么处理特殊的图表数字 label ?的更多相关文章

  1. ECharts(Enterprise Charts 商业产品图表库)初识

    一.简介 大数据时代,重新定义图表的时候到了,所以随之ECharts就随之出现了. ECharts(Enterprise Charts 商业产品图表库) 是基于Canvas的,纯Javascript ...

  2. ECharts学习(1)--简单图表的绘制

    1.获取ECharts 官网 下载:http://echarts.baidu.com/download.html 2.在html页面中引入ECharts文件 <!DOCTYPE html> ...

  3. ECharts学习总结(二)-----图表组件漏斗图(funnel)

    今天在学习ECharts时,想要在ECharts图表的原生态Demo中抠出漏斗图,却不知如何下手,经过一番研究,特总结如下: 首先我们需要这样做 1.拷贝出两个js文件:esl.js 和echarts ...

  4. Echarts使用及动态加载图表数据

    Echarts使用及动态加载图表数据 官网:http://echarts.baidu.com/ 1.文档 2.实例 名词: 1.统计维度(说明数据) 维度就是统计致力于建立一个基于多方位统计(时间.地 ...

  5. echarts 实战 : 图表竖着或横着是怎样判定的?

    这个问题比较简单. echarts 的图表默认是竖着的. 只要 xAxis 和 yAxis 互换,竖着的图就变成了横着的图了. 所以我们可以可以写一个xy轴互换的方法. reverseXYAxis = ...

  6. 学习Echarts:(一)静态图表

    Echarts是现在比较火的js图表库,官网有丰富的实例和友好的入门教程.但是图表的种类很多,配置项的参数也很多,一开始我根据图表类型翻看配置项,发现这样学效率太低了,决定先制定一个简单的学习步骤,按 ...

  7. ECharts一个强大的商业产品图表库

    Architecture ECharts (Enterprise Charts 商业产品图表库) 提供商业产品常用图表库,底层基于ZRender,创建了坐标系,图例,提示,工具箱等基础组件,并在此上构 ...

  8. vue引入echarts、找不到的图表引入方法、图表中的点击事件

    1.在vue-cli项目中添加webpack配置,本文引入的最新版本.在 3.1.1 版本之前 ECharts 在 npm 上的 package 是非官方维护的,从 3.1.1 开始由官方 EFE 维 ...

  9. mui集成百度ECharts的统计图表以及清空释放图表

    echarts官网地址: http://echarts.baidu.com/index.html 更换主题颜色: // 图表清空------------------- mychart.clear(); ...

随机推荐

  1. .Net Core微服务入门全纪录(五)——Ocelot-API网关(下)

    前言 上一篇[.Net Core微服务入门全纪录(四)--Ocelot-API网关(上)]已经完成了Ocelot网关的基本搭建,实现了服务入口的统一.当然,这只是API网关的一个最基本功能,它的进阶功 ...

  2. C#结构体struct -0029

    结构体 有时候我们仅需要一个小的数据结构,类提供的功能多于我们需要的功能:考虑到性能原因,最好使用结构体. 结构体是值类型,存储在栈中或存储为内联(如果结构体是存储在堆中的另一个对象的一部分). 例如 ...

  3. ImageLoader在ViewPage中的使用

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  4. java 中对hashmap进行排序

    public class HashMapSort { public static void main(String[] args) { HashMap<Integer, Student> ...

  5. Python 简明教程 --- 16,Python 高阶函数

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 对于那些快速算法,我们总是可以拿一些速度差不多但是更容易理解的算法来替代它们. -- Douglas ...

  6. coderfoces#414 div.2

    第一次打cf 感觉很奇妙 开始看到题目感觉极其怪异 然后忽然发现第一题一堆数中的因数出现最多的不是2么 然后过了5分钟就被一个专门攻击的人hack掉了 不得不说题并不难甚至很水(都是几行的入门题) 但 ...

  7. webpack入门进阶(1)

    1.webpack应用实例 1.1.快速上手 初始化项目 mkdir webpack-demo cd webpack-demo npm init -y 安装webpack npm i webpack@ ...

  8. Tomcat的启停脚本源码解析

    Tomcat是一款我们平时开发过程中最常用到的Servlet容器.本系列博客会记录Tomcat的整体架构.主要组件.IO线程模型.请求在Tomcat内部的流转过程以及一些Tomcat调优的相关知识. ...

  9. 虚拟机 - NAT模式下设置静态 IP 地址

    背景 如果不给虚拟机设置静态 IP 地址的话,每次重启机器都会自动分配一个新的 IP 如果有多台虚拟机的话,也会动态获取 IP 动态IP的话,每次 设置静态 IP 的步骤 查看本机 IP 和网关 cm ...

  10. 线程基础知识01-Thread类,Runnable接口

    常见面试题:创建一个线程的常用方法有哪些?Thread创建线程和Runnable创建线程有什么区别? 答案通常集中在,继承类和实现接口的差别上面: 如果深入问一些问题:1.要执行的任务写在run()方 ...