关于 antv g2 图表中 条形图的使用

本文介绍如何在使用 AntV G2 图表库时,为条形图设置自定义颜色。通过示例代码展示了一种有效的方法来循环设置不同颜色,以满足设计需求。

关于 antv g2 条形图自定义颜色的设置


前言

例如:在vue3.0 的开发过程中,使用到antv g2 图表工具中的 条形图工具,根据原型需求,需要将条形图设置成多色

提示:以下是本篇文章正文内容,下面案例可供参考

使用过程

1.安装antv g2

在这里插入图片描述

2.引入库

建议:为了减小前端文件的体积,建议按需引入对应的图表工具
代码如下(示例):
在这里插入图片描述

3.开始使用

需要实现的效果如下图:
在这里插入图片描述
代码如下(示例):

<!-- 条形图容器 -->
<div id="container"></div>

根据 api 文档中关于color 的设置进行图表设置
在这里插入图片描述

方案一:
在这里插入图片描述
效果如图
在这里插入图片描述

方案二
在这里插入图片描述
效果如图
在这里插入图片描述
很明显方案一,方案二,都没能很好的解决我们的问题

于是采用方案三
在这里插入图片描述
效果如图
在这里插入图片描述
方案三,虽然可以根据 label 解决问题,但是渠道是由后台返回的,并且名称不固定,所以还是没能解决所存在的问题,最终通过改造方案三,解决存在的文图,不多说,直接上代码

<!-- 条形图容器 -->
<div id="container"></div>
methods:{
// 初始化图表
	init() {
		cont data = [
	        {
	          label: '腾讯广告',
	          value: 100,
	        },{
	          label: '线下活动',
	          value: 300,
	        },{
	          label: '双十二',
	          value: 999,
	        },{
	          label: '抖音推广',
	          value: 666,
	        },{
	          label: '百度推广',
	          value: 756,
	        },{
	          label: '自动拉群',
	          value: 366,
	        },{
	          label: '其他',
	          value: 888,
	        },
	      ],
	      let index = 0
	      this.stackedBarPlot = new Bar('container',{
			appendPadding:10px,
			data,
			xField: 'value',
		    yField: 'label',
		    colorField: 'label', // 部分图表使用 seriesField
		    color: () => {
		       if(index > 4) {
		         index = 0
		       }
		       index++
		       return this.setColor(index)
		     },
		})
		this.stackedBarPlot.render();
	}/** 设置 条形图的颜色  */
    setColor(index) {
      let _color
      switch(index) {
        case 1:
          _color =  '#7666f9'
          break
        case 2:
          _color = '#f5bf22'
          break
        case 3:
          _color = '#647698'
          break
        case 4:
          _color = '#61d9ab'
          break
        case 5:
          _color = '#6294f9'
          break
      }
      return _color
    },
}

最终实现效果如图,条形图的颜色会根据设置的颜色个数直接循环,达到效果
在这里插入图片描述


总结

该文章只是对antv g2 图表中条形图的使用做一个简单的讲解,可能方案不是最优的,如果有更优的方案,求大佬指导

### 关于 AntV G2 使用教程 #### 安装与引入 为了在项目中使用 AntV G2,首先需要安装该库。可以通过 npm 或者 yarn 进行安装: ```bash npm install @antv/g2 --save ``` 或者 ```bash yarn add @antv/g2 ``` 接着,在 JavaScript 文件里通过 `import` 语句引入 G2 库[^2]。 #### 创建第一个图表实例 创建一个简单的条形图作为入门示例。这有助于理解基本概念并熟悉 API 的调用方式。下面是一个基于 Vue.js 环境下的简单实现[^1]: ```javascript // 导入必要的模块 import { Chart } from '@antv/g2'; export default { mounted() { const data = [ { type: '分类一', sales: 38 }, { type: '分类二', sales: 52 }, { type: '分类三', sales: 67 } ]; // 初始化图表容器 const chart = new Chart({ container: 'container-id',// DOM 节点 ID width: 600, height: 300 }); // 配置数据源 chart.data(data); // 设置坐标轴映射关系 chart.interval().position('type*sales'); // 渲染图表 chart.render(); } } ``` 这段代码展示了如何初始化一个图表对象,并为其指定宽高、配置数据集以及定义图形元素的位置属性。最后一步是渲染整个图表结构。 #### 自定义样式调整 对于更高级的需求比如修改条形的颜色,可以利用 `.color()` 方法来自定义颜色方案。这里提供了一种按照类别分配不同色彩的方法: ```javascript chart.interval() .position('type*sales') .color('type', ['#ff7f50','#87cefa','#da70d6']); ``` 上述片段说明了怎样给定一组预设好的十六进制颜色值列表,使得每一类别的柱子都能显示独特的外观效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值