Antv G2(bizCharts) 点线图 实现

名字

点线图: 不知道怎么命名

效果图

在这里插入图片描述

思路

数据: 初始化三条数据, 中间的为显示数据
使用折线图,隐藏折线,隐藏显示数据之外的所有点
X轴:隐藏X轴坐标内容
Y轴:设置y轴内容,y轴标题
注释:添加注释,线条,描述内容

代码(下面有全的子组件代码)
// 1、导入Chart图表
import {
   
    Chart } from "@antv/g2";
// 2、初始化图表
useEffect(() => {
   
   
    (async () => {
   
   
        const chartBox = new Chart({
   
   
            container: 'c3',
            autoFit: true,
            width: width,
            height: height,
            title: true
        })
        await setChartBox(chartBox) // 设置图表 chart
        const newData = cloneDeep(cData) // 复制数据 useState引用数据用新的地址替换
        newData.splice(1,1, data) // props接收到的显示的那条数据内容
        await setData(() => newData) // 设置新数据
    })()
}, [])
// 3、图表渲染
const setChart = () => {
   
   
    const margin = 1 / 3 // 3为数据列表长度
    chart.clear()
    chart.data(cData);
    chart.scale({
   
   
        date: {
   
   
        	// 坐标轴起始位置修改  一般[0 , 1]
            range: [margin / 2, 1 - margin / 2],
        },
        num: {
   
   
        	// 起始位置不变 末尾位置留白 给标题挤出空间
            range: [0, 1 - margin / 2],
            min: 0, // 设置坐标轴最小值
            max: max,// 设置坐标轴最大值
            nice: true, // 不设置最大值最小值的时候 会根据数据内容自动变化
        },
    });

    chart.tooltip(false); // 关闭提示

    // 坐标轴 X
    chart.axis('date', {
   
   
        label: {
   
   
            // 返回空字符串 隐藏横坐标文字内容
            formatter: (text) => ""
        }
    })
    // 坐标轴 Y
    chart.axis('num', {
   
   
        title: {
   
   
            text: cTitle, // 标题内容
            autoRotate: false,
            position: "end",
            offset: -10,
            textStyle: {
   
   
                textAlign: 'start', // 文本对齐方向,可取值为: start middle end
                fontSize: '12', // 文本大小
                fontWeight: 'bold', // 文本粗细
                textBaseline: 'top' // 文本基准线,可取 top middle bottom,默认为middle
            },
        },
        label: {
   
   
            formatter: (text) => text
        }
    })
    // 隐藏折线
    chart.line().style({
   
   
        stroke: "transparent" // 设置透明颜色
    }).position('date*num');
    // 隐藏点
    chart
        .point()
        .size
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值