Echarts反转x轴(图表显示在y轴左侧)

本文介绍了如何使用Echarts将图表的横轴设置为反向显示,通过设置`inverse:true`属性和调整数据顺序,实现图表从右向左的效果。同时,文章提到了一种备选方案,即通过转换数据并自定义`formatter`来达到类似效果。这种方法适用于需要保持数值正向但改变显示方向的情况。
摘要由CSDN通过智能技术生成

描述:

设计给出的设计稿有一个图表需要横着向左显示,跟另一个图表对应。
效果图:在这里插入图片描述


分析:

查阅echarts官方文档好像并没有相关的参数设置,但是设置负数会显示在负x轴,再用formatter转成正数显示即可。

option = {
        title: {
          text: '世界人口总量',
          subtext: '数据来自网络'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'shadow'
          }
        },
        legend: {
          data: ['2011年', '2012年']
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: {
          type: 'value',
          boundaryGap: [0, 0.01],
          //x轴坐标数字显示正数
          axisLabel: {
            formatter(params) {
              return -params;
            }
          }
        },
        yAxis: {
          type: 'category',
          //y轴显示在右侧
          position: 'right',
          data: ['巴西', '印尼', '美国', '印度', '中国', '世界', '日本', '韩国', '希腊'],
        },
        tooltip: {
        //鼠标经过tooltip显示正数,params.marker为默认的小圆点
          formatter(params) {
            return params.name + "<br/>" + params.marker + params.seriesName + "&nbsp;&nbsp;<b>" + (-params.data) + "</b>"
          }
        },
        series: [
          {
            name: '2011年',
            type: 'bar',
            //数据转成负数显示在-x轴,显示时去掉负号
            data: [-10, -20, -30, -40, -50, -60, -70, -80, -90],
            //颜色渐变
            itemStyle: {
              color: new echarts.graphic.LinearGradient(
                0, 0, 1, 0,
                [
                  { offset: 0, color: '#38e599' },
                  { offset: 1, color: '#1ec37a' }
                ]
              )
            },
          }
        ]
      }

如果有更好的办法,欢迎指出。


更新,其实很简单,设置xAxis为反向坐标轴即可inverse:true

const data = [2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,2022]
const arr= [...data].reverse()
option = {
        title: {
          text: '世界人口总量',
          subtext: '数据来自网络'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'shadow'
          }
        },
        legend: {
          data: ['2011年']
        },
        xAxis: {
          type: 'value',
          inverse:true,
          boundaryGap: [0, 0.01],
          min:2012,
          max:2022,
          // x轴无需翻转
          axisLabel: {
            formatter(params,i) {
              return arr[i];
            }
          }
        },
        yAxis: {
          type: 'category',
          // position:'right',
          axisLine:{
            show:false
          },
          axisTick:{
            show:false
          },
          data: ['巴西', '印尼', '美国', '印度', '中国', '世界', '日本', '韩国', '希腊','俄罗斯'],
        },
        series: [
          {
            name: '2011年',
            type: 'bar',
            data,
            //颜色渐变
            itemStyle: {
              color: new echarts.graphic.LinearGradient(
                0, 0, 1, 0,
                [
                  { offset: 0, color: '#38e599' },
                  { offset: 1, color: '#1ec37a' }
                ]
              )
            },
          }
        ]
      }

在这里插入图片描述

echarts官网:https://echarts.apache.org/examples/zh/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qsya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值