AntV G2 柱状图 改变柱子颜色+柱子上方显示文字与图标

本文介绍如何使用AntVG2库自定义柱状图的样式,包括柱子的颜色、上方显示的文本和图标。通过示例代码展示了根据不同条件设置柱子颜色和图标的方法。

AntV G2,对柱状图进行一些自定义:

1.柱子颜色自定义

2.柱子上方显示文本

3.柱子上方显示图标

具体代码如下:

<template>
  <div id="mountNode"></div>
</template>

<script>
  import G2 from '@antv/g2'

  export default {
    name: "antv",
    mounted () {
      this.drawBar()
    },
    methods:{
      drawBar(){
        var data = [{
          "name": "John",
          "vote": 88
        }, {
          "name": "Damon",
          "vote": 56
        }, {
          "name": "Patrick",
          "vote": 92
        }, {
          "name": "Mark",
          "vote": 83
        },{
          "name": "Lose",
          "vote": 43
        },{
          "name": "Kii",
          "vote": 99
        }];

        var imageMap = {
          'excellent': 'https://zos.alipayobjects.com/rmsportal/mYhpaYHyHhjYcQf.png',
          'good': 'https://zos.alipayobjects.com/rmsportal/JBxkqlzhrlkGlLW.png',
          'bad': 'https://zos.alipayobjects.com/rmsportal/zlkGnEMgOawcyeX.png',
        };

        var chart = new G2.Chart({
          container: 'mountNode',
          //forceFit:true时宽度配置不生效
          width:1000,
          height: 600,
          padding: [60, 20, 40, 60],

        });

        chart.source(data, {
          vote: {
            min: 0
          }
        });

        chart.coord({
          transposed: true
        });

        chart.legend(false);


        chart.axis('vote', {
          labels: null,
          title: null,
          line: null,
          tickLine: null,
        });

        chart.interval().position('name*vote').color('name*vote', function (name,vote) {
          if (vote > 90) {
            return '#db4c3c'
          } else if (vote > 60) {
            return '#fec514'
          } else {
            return '#7f8da9'
          }
        });

        chart
          .point()
          .position('name*vote')
          .size(60)
          .shape('name*vote', function(name,vote) {
            if (vote > 90) {
              return ['image', imageMap['excellent']];
            } else if (vote > 60) {
              return ['image', imageMap['good']];
            } else {
              return ['image', imageMap['bad']];
            }
          })
          .label('vote',{
            offset: -20, // 文本距离图形的距离
            textStyle: {
              fill: '#404040',
              fontSize:'14',
              fontWeight: 'bold', // 文本粗细
              shadowBlur: 5, // 文本阴影模糊
              shadowColor: '#fff' // 阴影颜色
            },
            formatter:function (value) {
              if (value > 90) {
                return '优秀'
              } else if (value > 60) {
                return '良好'
              } else {
                return '不达标'
              }
            }
        });

        chart.render();
      }
    }
  }
</script>

<style scoped>

</style>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值