Echart - 双柱状图(bar)

本文详细解析了ECharts图表配置的各项参数,包括背景颜色、工具提示、图例、网格布局、坐标轴设置以及系列数据的样式。通过具体配置示例,帮助读者理解如何自定义图表的外观和行为,实现数据的可视化展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

let option = {
        backgroundColor: "transparent",
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "shadow"
          }
        },
        legend: {
          data: ["本周事项数", "上周事项数"],
          align: "left",
          right: 30,
          top: 10,
          textStyle: {
            color: "#fff"
          },
          itemWidth: 15,
          itemHeight: 11,
          itemGap: 35
        },
        grid: {
          left: "60",
          right: "10",
          bottom: "60",
          top: "40"
        },
        xAxis: [
          {
            type: "category",
            axisLine: {
              lineStyle: {
                color: "#355b68"
              }
            },
            axisLabel: {
              color: "#fff",
              fontSize: 14,
              interval: 0,
              formatter: function(params) {
                let newParamsName = "";
                let paramsNameNumber = params.length;
                let provideNumber = 4;
                let rowNumber = Math.ceil(paramsNameNumber / provideNumber);
                if (paramsNameNumber > provideNumber) {
                  for (let p = 0; p < rowNumber; p++) {
                    let tempStr = "";
                    let start = p * provideNumber;
                    let end = start + provideNumber;
                    if (p === rowNumber - 1) {
                      tempStr = params.substring(start, paramsNameNumber);
                    } else {
                      if (p > 2) {
                        tempStr = "...";
                        newParamsName += tempStr;
                        break;
                      } else {
                        tempStr = params.substring(start, end);
                        if (p < 2) {
                          tempStr += "\n";
                        }
                      }
                    }
                    newParamsName += tempStr;
                  }
                } else {
                  newParamsName = params;
                }
                return newParamsName;
              }
            },
            splitLine: {
              lineStyle: {
                color: "#00314a"
              }
            },
            axisTick: {
              show: false
            },

            data: _self.HighFreWeekly.listX
          }
        ],
        yAxis: [
          {
            type: "value",
            name: "事项数(件)",
            nameTextStyle: {
              color: "#fff",
              fontSize: 14
            },
            axisLine: {
              lineStyle: {
                color: "#355b68"
              }
            },
            axisTick: {
              show: false
            },
            splitLine: {
              lineStyle: {
                color: "#355b68"
              }
            },
            axisLabel: {
              color: "#fff",
              fontSize: 14,
              formatter: "{value}"
            }
          }
        ],
        series: [
          {
            name: "本周事项数",
            type: "bar",
            data: _self.HighFreWeekly.listY,
            barWidth: 20,
            barGap: "100%", // 柱图间距
            itemStyle: {
              color: new _self.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                { offset: 0, color: "#f4e106" },
                { offset: 0.5, color: "#f9bd14" },
                { offset: 1, color: "#ff9f2e" }
              ])
            }
          },
          {
            name: "上周事项数",
            type: "bar",
            data: _self.HighFreWeekly.listZ,
            barWidth: 20,
            barGap: "100%",
            itemStyle: {
              color: new _self.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                { offset: 0, color: "#00fef6" },
                { offset: 0.5, color: "#00c5f9" },
                { offset: 1, color: "#188df0" }
              ])
            }
          }
        ]
      };
<think>好的,用户想了解如何使用ECharts创建双柱状图的示例或教程。首先,我需要回忆一下ECharts的基本用法,特别是柱状图的配置方法。记得ECharts通过option对象来配置图表,而双柱状图通常是通过多个series项来实现的,每个series对应一个柱子。 接下来,我应该检查用户提供的引用内容。引用[1]和[2]提到了在Vue中使用ECharts创建柱状图的基本步骤,比如初始化实例和数据传递。引用[3]提到了symbolPosition和symbolOffset等配置,这可能对调整柱子的位置有帮助,不过双柱状图更常见的是并列显示,可能需要设置不同的barWidth和barGap。 然后,我需要确保示例代码符合用户的要求,即双柱状图,也就是两个不同的数据系列并排显示。这时候需要设置xAxis的type为'category',并提供对应的数据,而series数组中包含两个对象,分别代表两个柱状图系列。每个系列的type应为'bar',并且可能需要调整barWidth和itemStyle来区分颜色。 另外,用户可能需要注意如何调整柱子的间距和宽度,避免重叠。在option中,可能需要设置series中的每个barbarWidth,并利用barGap来控制不同系列之间的间隔。例如,barGap: '20%'可以让两个柱子之间有20%的间隔,防止重叠。 同时,引用[3]中提到的symbolPosition和symbolOffset可能用于更复杂的图形,比如立体柱状图,但双柱状图通常不需要这些配置,所以暂时可以忽略这部分,专注于基本的双系列配置。 还需要确保代码示例正确初始化ECharts实例,并绑定到DOM元素上。在Vue环境中,可能会在mounted生命周期钩子中初始化图表,如引用[1]和[2]所示。但用户可能只需要核心的ECharts配置,所以提供一个纯JavaScript的示例更合适,不过可以补充说明如何在Vue中使用。 最后,生成相关问题时要围绕双柱状图的扩展配置、数据动态更新、样式调整以及与其他图表类型的结合,确保问题覆盖用户可能进一步探索的方向。</think>### 使用ECharts创建双柱状图的示例教程 双柱状图常用于对比两组数据在不同类目下的差异。以下是使用ECharts实现双柱状图的核心配置和示例代码: #### 1. 基础配置结构 ```javascript // 初始化ECharts实例 const chart = echarts.init(document.getElementById('chart-container')); // 配置项 const option = { title: { text: '双柱状图示例' }, tooltip: { trigger: 'axis' }, legend: { data: ['系列A', '系列B'] }, xAxis: { type: 'category', data: ['类目1', '类目2', '类目3', '类目4', '类目5'] }, yAxis: { type: 'value' }, series: [ { name: '系列A', type: 'bar', barWidth: '30%', // 控制柱子宽度 data: [20, 45, 30, 55, 40], itemStyle: { color: '#5470C6' } }, { name: '系列B', type: 'bar', barWidth: '30%', data: [35, 25, 40, 30, 50], itemStyle: { color: '#91CC75' } } ] }; // 渲染图表 chart.setOption(option); ``` #### 2. 关键配置说明 - **并列显示**:通过设置两个`series`对象实现双柱 - **宽度控制**:`barWidth`定义单个系列柱宽(占总宽度的百分比) - **颜色区分**:`itemStyle.color`定义各系列颜色 - **间距调整**:可通过`series.barGap: '20%'`调整系列间间距[^3] #### 3. 在Vue3中的集成示例(基于引用[2]) ```javascript // 在Vue组件中 import { onMounted } from 'vue'; import * as echarts from 'echarts'; export default { setup() { onMounted(() => { const chart = echarts.init(document.getElementById('chart-container')); // 使用上述option配置 chart.setOption(option); }); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值