仿蚂蚁金服AntV框架蚂蚁数据可视化F2条形图、柱状图(注释详尽)

大家好,这次使用的是AntV的蚂蚁数据可视化F2框架,类似于蚂蚁基金的效果,代码如下:
F2框架参考网址:https://antv-f2.gitee.io/zh/examples/bar/basic#basic

<canvas id="barCanvas"></canvas>

效果图如下:
在这里插入图片描述

import F2 from '@antv/f2';

const data = [{
  year: '1951 年',
  sales: 38
}, {
  year: '1952 年',
  sales: 52
}, {
  year: '1956 年',
  sales: 61
}, {
  year: '1957 年',
  sales: 145
}, {
  year: '1958 年',
  sales: 48
}, {
  year: '1959 年',
  sales: 38
}, {
  year: '1960 年',
  sales: 38
}, {
  year: '1962 年',
  sales: 38
}];
const barChart = new F2.Chart({
  id: 'container',
  pixelRatio: window.devicePixelRatio
});

barChart.source(data, {
  sales: {
    tickCount: 5,
    show: true,
    max: 150,//建议手动设置目标的最大值,防止图表自动渲染时数字超出横轴的屏幕
  }
});

barChart.tooltip({
  showItemMarker: false,
  onShow: function onShow(ev) {
    const items = ev.items;
    items[0].name = null;
    items[0].name = items[0].title;
    items[0].value = '¥ ' + items[0].value;
  }
});

var xField="year"
var yField="sales"
var isTransposed=true//是否翻转,为true时XY轴坐标会翻转,为false时则XY轴正常
barChart.coord({
  transposed: isTransposed,
});
barChart.axis(yField, false)//可设置是否隐藏横轴坐标系及上面的值(此时原坐标轴已翻转了)
//为条形图添加标注
if(isTransposed){//判断是否翻转,两种的样式有所不同
  data.map(function (obj) {
    console.log(obj, "打印obj")
    barChart.guide().text({
      position: [obj[xField], obj[yField]],
      content: obj[yField],
      style: {
        textAlign: 'start',
        color: "#aaa"
      },
      offsetX: 10
    });
  });
}else{
  data.map(function (obj) {
    console.log(obj, "打印obj")
    barChart.guide().text({
      position: [obj[xField], obj[yField]],
      content: obj[yField],
      style: {
        textAlign: 'center',
        color: "#aaa"
      },
      offsetY: -10
    });
  });
}

barChart.interval().position(`${xField}*${yField}`).color("#f00")
barChart.render();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AntV G2 可以通过多种方式实现分组柱状图和折线图的混合画法,以下是其中一种实现方法: 1. 首先,定义数据格式,包括 x 轴数据、柱状图数据和折线图数据。 2. 然后,使用 G2 的图表配置方法,设置 x 轴和 y 轴的属性。 3. 接下来,使用 G2 的图表创建方法,创建柱状图和折线图对象。 4. 最后,将柱状图对象和折线图对象添加到同一个视图中,实现分组柱状图和折线图的混合画法。 以下是一个示例代码,实现了分组柱状图和折线图的混合画法: ```javascript import { Chart } from '@antv/g2'; // 定义数据格式 const data = [ { x: '一月', y1: 10, y2: 20 }, { x: '二月', y1: 20, y2: 30 }, { x: '三月', y1: 30, y2: 40 }, { x: '四月', y1: 40, y2: 50 }, { x: '五月', y1: 50, y2: 60 }, { x: '六月', y1: 60, y2: 70 }, ]; // 创建图表对象 const chart = new Chart({ container: 'container', autoFit: true, height: 500, }); // 设置 x 轴和 y 轴的属性 chart.scale({ x: { range: [0, 1] }, y: { min: 0 }, }); // 创建柱状图对象 const bar = chart .interval() .position('x*y1') .color('x') .adjust([{ type: 'dodge', marginRatio: 0.1 }]); // 创建折线图对象 const line = chart .line() .position('x*y2') .color('x'); // 添加柱状图对象和折线图对象到同一个视图中 chart.render(); bar.render(); line.render(); ``` 该示例代码创建了一个包含两组数据的分组柱状图和一组数据的折线图,其中柱状图和折线图共享 x 轴,分别对应 y1 和 y2,柱状图和折线图的颜色按照 x 轴分组。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值