最近在做项目的时候需要用到 Echarts 的正负条形图,但是条形图的左半部分的数值是负数的,但是我们需要他也是正数的,话不多说,先上效果图:

所以需要做如下几步修改:

  1. 首先需要修改x轴上面显示为负数的刻度标签,找到xAxis[i].axisLabel,重写他的formatter,代码如下所示:

    xAxis: [{type: 'value',axisLabel: {formatter: (value) => {// 负数取反 显示的就是正数了if (value < 0) return -valueelse return value}}}
    ]
    
  2. 其次修改柱状图上面显示为负数的文本标签,找到series[i].label,重写他的formatter,代码如下所示:

    series: [{name: '流入',type: 'bar',stack: '总量',label: {show: true,// formatter 的另一种简便写法formatter: '{c} MB/S'},itemStyle: {color: '#47a1ff'},data: [388.28, 333.69, 408.56, 391.61, 480.39]},{name: '流出',type: 'bar',stack: '总量',label: {show: true,formatter: (value) => {// 值都是负数的 所以需要取反一下return -value.data + 'MB/S'}},itemStyle: {color: '#fbd54c'},data: [-409.17, -473.6, -462.96, -501.67, -452.13]}
    ]
    
  3. 如果有提示框的话,提示框中为负数的数据也要坐相应的修改,代码如下所示:

    tooltip: {trigger: 'axis',axisPointer: {type: 'shadow' // 坐标指示器类型},formatter: (params) => {if (!params.length) return ''let s = params[0].axisValueLabel + '<br/>'for (const iterator of params) {// 如果是负数则反转let d = iterator.data < 0 ? -iterator.data : iterator.datas += iterator.marker + iterator.seriesName + ':' + d + ' MB/S' + '<br/>'}return s}
    }
    

最后附上option全部代码:

let option = {tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'},formatter: (params) => {if (!params.length) return ''let s = params[0].axisValueLabel + '<br/>'for (const iterator of params) {let d = iterator.data < 0 ? -iterator.data : iterator.datas += iterator.marker + iterator.seriesName + ':' + d + ' MB/S' + '<br/>'}return s}},legend: {data: ['流出', '流入']},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true},xAxis: [{type: 'value',axisLabel: {formatter: (value) => {if (value < 0) return -valueelse return value}}}],yAxis: [{type: 'category',axisTick: { show: false },data: ['GigabitEthernet1/0/47', 'GigabitEthernet2/0/24', 'GigabitEthernet2/0/23', 'GigabitEthernet1/0/18', 'GigabitEthernet1/0/8']}],series: [{name: '流入',type: 'bar',stack: '总量',label: {show: true,formatter: '{c} MB/S'},itemStyle: {color: '#47a1ff'},data: [388.28, 333.69, 408.56, 391.61, 480.39]},{name: '流出',type: 'bar',stack: '总量',label: {show: true,formatter: (value) => {// 值都是负数的 所以需要取反一下return -value.data + 'MB/S'}},itemStyle: {color: '#fbd54c'},data: [-409.17, -473.6, -462.96, -501.67, -452.13]}]
}

Echarts正负条形图将x轴都设置成正数相关推荐

  1. Python中matplotlib默认绘制的条形图比较胖?如何设置成体型匀称的条形图,达到最佳的可视化效果。

    Python中matplotlib默认绘制的条形图比较胖?如何设置成体型匀称的条形图,达到最佳的可视化效果. #默认情形下的条形图 n_bars = len(x_labels)xval = np.ar ...

  2. echarts图表x,y轴的设置

    xAxis属性代表echarts图表的x轴设置代码如下 xAxis : [{type : 'category', // type:坐标轴类型.// [ default: 'category' ]/*可 ...

  3. php正负数都转成正数,PHP将数组中负数全部变为正数的方法

    PHP将数组中负数全部变为正数的方法 发布时间:2020-08-21 10:40:56 来源:亿速云 阅读:66 作者:小新 这篇文章主要介绍PHP将数组中负数全部变为正数的方法,文中介绍的非常详细, ...

  4. echarts或vcharts的X轴设置

    vcharts vcharts就是基于vue对echarts进行封装后的图表组件,其配置有两个参数settting和extend,settings的参数格式参照vcharts的官方文档(https:/ ...

  5. echart 设置y轴间隔_分割ECharts的y轴并设置坐标轴间隔

    在 ECharts 图表中的 y 轴的分割段数默认为5,这是由于 yAxis 中的 splitNumber 的决定的.那么我们如果想要在 y 坐标轴上进行更多的分段呢?如何让其刻度间隔变得更加的细致呢 ...

  6. echarts 柱状堆叠图(图例和x轴都是动态的)

    问题描述: echarts柱状堆叠图,是很常用的图表,官网的例子很简单 .图例(legend),x轴(xAxis)都是写死的.但是一般实际应用中都是 动态的.下面就举个例子,实现图例和x轴都是动态的 ...

  7. Echarts实现多个x轴或y轴曲线图

    Echarts实现多个x轴或y轴曲线图 效果图如下: 1.1 配置option对象 option:{// 设置 x 轴的样式xAxis:{},// 设置 y 轴的样式yAxis:[],// 设置每条曲 ...

  8. Echarts绘制不均匀数据轴(y)

    应用场景(以Echarts柱状图为例): 现有一组数据:最小的数是 50000(5万) ,最大的数是 3000000000(30亿). 如果按照Echarts正常的画法,我们只需提取出来这些数据然后交 ...

  9. 柱状图怎么设置xy轴_echarts图表x,y轴的设置

    每到用echarts这门技术去画图的时候,我们大多人都是直接从echarts的官网的案例找相应的案例直接把代码复制到开发软件上基本随便一改就能使用,但是这种情况基本都是在练习的时候和项目开发没有必须要 ...

最新文章

  1. 让老鼠迷上玩《毁灭战士2》?这个匈牙利神经科学家做到了
  2. WPF-数据绑定:日期时间格式
  3. equals 与==的不同
  4. 【C++ Primer | 08】课后习题答案
  5. [转载] 中国象棋软件-引擎实现(一)概述
  6. Android 开发总结大全
  7. 心语收集8:若无缘,与之言多,亦废。若有缘,你的存在,就能惊醒他所有的感觉。...
  8. Spring Mvc前台访问报404
  9. 《大数据技术原理与应用》 期末复习
  10. NCM转MP3神奇的网页
  11. Neo4j Desktop(Neo4j 桌面)安装插件
  12. 翁恺c语言视频作业题,翁恺入门C语言第2周编程练习
  13. 计算机伦理学理论分析三大思想,医学伦理学的基本理论
  14. STM32F103--BKP
  15. FBEC2021 | 对话阿里巴巴云游戏事业部/元境副总经理 龙志勇:坚持研运一体化服务的路线
  16. vue 记住密码下次自动登录
  17. 实战技法 - 短线操盘 (6)
  18. Spring应用启动后执行任务的几种方法
  19. Python操作SQLServer
  20. Java实现 LeetCode 546 移除盒子(递归,vivo秋招)

热门文章

  1. 【分享】“飞书自建“在集简云平台集成应用的常见问题与解决方案
  2. excel设置斑马线
  3. 电脑怎么找到tomcat端口_查看tomcat端口号(怎么看tomcat的端口号)
  4. 伯特兰·阿瑟·威廉·罗素
  5. 很简单的html+js,程序员的浪漫,可以让你小女朋友点开哈。哈哈哈
  6. 2022Java后端学习主流知识学习系列(建议先收藏)
  7. 用canvas实现一个简易绘图工具
  8. 微端是什么意思?微端对服务器性能配置要求
  9. java 解析der文件_java-如何读取也用bouncycastle在DER中编码的PK...
  10. SSM框架项目实践,leetcode46