Ant Design Charts 折线图配置属性结合案例详细说明

// yarn add @ant-design/charts  或者 npm install @ant-design/charts
 
import { Line } from '@ant-design/charts';

1、获取data数据

useEffect(() => {
    asyncFetch();
}, []);
 
const asyncFetch = (0 => {
  fetch('获取接口连接')
        .then((response) => response.json())
        .then((json) => {
          // setData(json)
  })
      .catch((error) => {
         console.log('fetch data failed', error);
      });
}
 
2、默认数据:
const data = [
    {
      category: '调用量',
      value: 0,
      year: '2001',
    },
    {
      category: '并发量',
      value: 10,
      year: '2001',
    },
    {
      category: '调用量',
      value: 40,
      year: '2002',
    },
    {
      category: '并发量',
      value: 112,
      year: '2002',
    },
    {
      category: '调用量',
      value: 50,
      year: '2012',
    },
    {
      category: '并发量',
      value: 60,
      year: '2012',
    },
];
3、config配置
const config = {
    data,
    height: 450, // 画布高度
    xField: 'year',
    yField: 'value',
    seriesField: 'category', // 这个是多条曲线的关键,如果数值有多种,就会出现多条曲线
    yAxis: { // 设置y轴的样式
      nice: true,
    //   line: { style: { stroke: '#0A122E' } },
      label: {
        formatter: (v) => `${v}`.replace(/\d{1,3}(?=(\d{3})+$)/g, (s) => `${s},`),
        style: {
            stroke: '#0A122E',
            // fontSize: 12,
            fontWeight: 300,
        },
      },
    },
    xAxis: { // 设置x轴的样式
        line: { style: { stroke: '#0A122E' } },
        label: {
            style: {
                stroke: '#0A122E',
                // fontSize: 12,
                fontWeight: 300,
        },
      },
    },
    // tooltip 自定义触摸到曲线后显示数据弹窗的样式,不配就显示默认的
    tooltip: {
      customContent: (title: any, items: any): any => {
        return (
          <div style={{ padding: '12px 14px', fontSize: '12px', width: '180px', height: '68px' }}>
            {items && items.length === 2 && (
              <>
                <p className={styles.firstTg}>
                  <span className={styles.yellowTip} />
                  <span className={styles.scoendTg}>充值</span>
                  {items[0] && items[0].data.amount}
                </p>
                <p className={styles.firstTg}>
                  <span className={styles.greenTip} />
                  <span className={styles.scoendTg}>消费</span>
                  {items[1] && items[1].data.amount}
                </p>
              </>
            )}
          </div>
        );
      },
    },
    legend: {
      position: 'top-right',
      items: [
        {
          name: '调用量',
          marker: {
            symbol: 'square',
            style: {
              fill: '#1979C9',
            },
          },
        },
        {
          name: '并发量',
          marker: {
            symbol: 'square',
            style: {
              fill: '#D62A0D',
            },
          },
        },
      ],
    }, //
    color: ['#1979C9', '#D62A0D'], // 配置显示的2条曲线线条颜色,如果多条,继续添加,注意与右上角的图例颜色要对应
    smooth: false // 是否为平滑曲线
  };
 
4、
return (
    <div className={styles.custom_g2plot}>
      <Line {...config} />
    </div>
  );
 
posted @ 2021-07-22 11:22  十月芬芳  阅读(4819)  评论(0编辑  收藏  举报