vue使用antv踩到的坑

使用antv踩到的坑

面积图的纵坐标问题

1.使用antv g2plot 的面积图,纵坐标总是不对,之前以为是自己写的有问题, 结果发现是它这个框架的面积图的框架都有问题(纵坐标是两个面积图的纵坐标之和)

图在ios15及以上的版本不能显示问题
  1. 使用antv 画图,结果在移动端的ios15以上图不能显示,总是会刷新页面,后面把图注释之后发现页面可以非常快的加载出来,然后发现可能是自己下载的antv g2plot 的版本较低,需要升级到最新版本, 升级到最新版本图片就能显示了
antv的changeData()使用不生效的问题
  1. 使用antv的changeData()不生效,当点击按钮切换数据的时候可以使用antv 的changeData() 方法,但是使用的时候发现使用了该方法不生效。改变不了数据, 后面发现可以将画图的这个事件挂载到this上面,例如需要改变数据的是折线图:
    在这里插入图片描述
    这个时候打印this可以看到line是否挂载在this上面
    在这里插入图片描述
    成功挂载之后就能够使用this.line.changeData(要改变的数据) 使用它了!
antv的渐变色问题

柱状图的渐变, 径向渐变前面是l, 另一种是r
在这里插入图片描述

antv 自定义tooltip
  // 自定义的那个tolltip的样式,我这儿是让他的背景是渐变色的,样式的写法都是css的写法
      const divStyle = {
        position: 'absolute', //这个定位是必须要写的, 不然可能会显示不出来
        background: 'linear-gradient(360deg, #286ce9 0%, #01d1ff 100%)', 
        borderRadius: "4px",
        padding: '10px',
        color: '#fff',
        fontSize: '12px',
        listStyle: 'none',
        lineHeight: '16px'
      }
      //循环自己设置的样式,将这些样式全部设置在你创建的那个盒子上面
      const setStyle = (container, styles) => {
        for(const key in styles) {
          container.style[key] = styles[key]
           /* 个人觉得上面这步应该是相当于container.style.key = styles.key,
           就像是container.stye.position = styles.postion == 'absolute' */
        }
      }
      const barPlot = new Column(this.id, {
   columnStyle: {
          fill: "l(255) 0: #030c31 1: #00f6ff"
        },
        // 将自己写的样式之类的引入到tooltip中来
        tooltip: {
          customContent: (value, items) => {
            const tt = document.createElement('ul');
            setStyle(tt, divStyle);
            items.forEach(it => {
              let li = document.createElement('li');
              li.innerHTML = `${it.name}: ${it.value}`
              tt.appendChild(li)
            })
            return tt
          }
        }
用一个总的数据绘制出一条线,但是tooltip显示4个数据

例如数据要求以一个总额画线,但是点击那一条线要显示总额的数值,以及组成总额的a、b、c的值,这个时候就需要将a、b、 c作为总额的子数据,因为一般绘制图形都是传x轴和y轴进来,你在绘制图像的那个页面打印数值也是只能打印出x、y轴的数值,那么怎么让一天线显示4个数据呢?
例如这条数据为:

let total = [
  {
    name: '总额', 
    value: 10,
    //这个children名字可以自己命名成你想命名的键名
    children: [
      {
        name: 'a',
        value: 3
      },
      {
        name: 'b',
        value: 3
      },
      {
        name: 'c',
        value: 4
      },
    ]
  },
   {
    name: '总额', 
    value: 10,
    children: [
      {
        name: 'a',
        value: 3
      },
      {
        name: 'b',
        value: 3
      },
      {
        name: 'c',
        value: 4
      },
    ]
  },
  ...
]

后来通过查询antv的api发现meta里面有一个values的属性,可以枚举出来你想要显示的那个属性, 所以就大胆的尝试了一下,发现当使用了meta的values之后,我在自定义的那个tooltip里面打印items的时候他的data里面就不只有value和name这两个键值对了,还出现了children这个键值对,这样就可以在自定义的tooltip里面自由发挥啦!!!!

 columnStyle: {
          fill: "l(255) 0: #030c31 1: #00f6ff"
        },
        meta: {
          values: 'children' 
          //values 后面的这个children要看你自己在传的那个data里面为你要显示的其他键命名的是什么名字,命名的什么名字就写什么名字
        },

其他的暂时想不起来了,等后面想到了再进行添加

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值