echarts-多列柱状图中其中某一列数据为0时不占位

在这里插入图片描述

option

可以复制示例option代码,在echarts的示例background中粘贴运行来学习
https://echarts.apache.org/examples/zh/editor.html?c=bar-background

option = {
  xAxis: [
    {
      type: 'category',
      data: ['一', '', '']
    },
    {
      type: 'category',
      position: 'bottom',
      data: ['', '二', '']
    },
    {
      type: 'category',
      position: 'bottom',
      data: ['', '', '三']
    }
  ],
  yAxis: {
    type: 'value'
  },
  series: [
    // 第一个x轴数据
    {
      name: '一',
      type: 'bar',
      xAxisIndex: 0,
      barWidth: 30,
      data: [1]
    },
    {
      name: '二',
      type: 'bar',
      xAxisIndex: 0,
      barWidth: 30,
      data: [2]
    },
    {
      name: '三',
      type: 'bar',
      xAxisIndex: 0,
      barWidth: 30,
      data: [3]
    },
    // 第二个x轴数据
    {
      name: '一',
      type: 'bar',
      xAxisIndex: 1,
      barWidth: 30,
      data: ['', 1]
    },
    {
      name: '二',
      type: 'bar',
      xAxisIndex: 1,
      barWidth: 30,
      data: ['', 2]
    },
    // 第三个x轴数据
    {
      name: '一',
      type: 'bar',
      xAxisIndex: 2,
      barWidth: 30,
      data: ['', '', 2]
    },
    {
      name: '三',
      type: 'bar',
      xAxisIndex: 2,
      barWidth: 30,
      data: ['', '', 1]
    }
  ]
};
position: ‘bottom’

用于把x轴的轴名放在正确位置,不然不能正确显示x轴的轴名

xAxisIndex

表示使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用
比如示例中有三个x轴, xAxisIndex最大则为2,如果超过2,echarts直接报错,会直接渲染echarts失败
在series中设置相应的xAxisIndex可以保证柱在对应x轴中是居中对齐的,可以自己改一改看一看效果

barWidth

不设置的话会柱自动撑满所有宽度

xAxis与series

xAxis与series的data位置要对应

根据以上规律编写js处理后端柱图数组数据

一般来说后端柱图数组数据,是这样格式的:

const xAxis = [
  '星期一',
  '星期二',
  '星期三',
  '星期四',
  '星期五',
  '星期六',
  '星期天'
];
const bar1 = [10, 2, 0, 4, 5, 6, 7];
const bar2 = [8, 9, 10, 11, 12, 13, 14];
const bar3 = [0, 0, 17, 18, 19, 20, 21];

function dealBar(arr, name) {
  const bar = [];
  arr.forEach((item, index) => {
    const data = [];
    for (let i = 0; i < index; i++) {
      data.push('');
    }
    if (item) {
      data.push(item);
      bar.push({
        name,
        type: 'bar',
        xAxisIndex: index,
        barWidth: 20,
        data
      });
    }
  });
  return bar;
}
option = {
  legend:{},
  xAxis: xAxis.map((item, index) => {
    const data = Array(xAxis.length).fill('');
    data[index] = item;
    return {
      type: 'category',
      position: 'bottom',
      data: data
    };
  }),
  yAxis: {
    type: 'value'
  },
  series: [
    ...dealBar(bar1, 'bar1'),
    ...dealBar(bar2, 'bar2'),
    ...dealBar(bar3, 'bar3')
  ]
};
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vue-Echarts多是使用Vue框架和Echarts表库来实现的一种表类型。它可以显示多个的柱,每个代表不同的数据。在Vue-Echarts,可以通过高度封装的方式来使用Echarts的折线和柱功能。引用的混入文件可以帮助实现窗口改变,使Echarts表自适应。 对于多,每一数据可以通过series的配置来设置。在3D柱数据分为底部切片、间柱子和顶部切片三个部分。可以通过配置不同的系来表示不同的数据。 具体实现多的步骤如下: 1. 使用Vue-Echarts库来创建一个Vue组件,并引入相关依赖。 2. 在Vue组件,使用Echarts的option配置对象来设置表的样式、数据和系。 3. 在option的series属性,通过配置不同的系来表示多个数据。 4. 按照需求配置其他的Echarts选项,如x轴、y轴、例等。 5. 在Vue组件渲染并显示Echarts表。 通过以上步骤,可以实现一个Vue-Echarts多。在,每一代表一个数据,可以展示多个数据的对比情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue-echarts-element-stylus:高度封装的elemnet表格组件,高度封装echarts,excel表格上传,excel表格下载](https://download.csdn.net/download/weixin_42133452/18559339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue2.x-echarts公共组件封装--简易篇(3d柱,炫酷仪表盘,折线,曲线)](https://blog.csdn.net/vscode_js/article/details/125913485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值