---
title: 面积图
order: 1
docGenIncludes:
  - src/components/YwAreaChart/index.tsx
---

```jsx
import React, { Component, useState, useEffect } from 'react';
import ReactDOM from 'react-dom';
import moment from 'moment';
import { YwAreaChart } from '@ywfe/yw-charts';

const App = () => {
  const [data, setData] = useState([]);

  const asyncFetch = () => {
    fetch(
      'https://gw.alipayobjects.com/os/bmw-prod/360c3eae-0c73-46f0-a982-4746a6095010.json'
    )
      .then((response) => response.json())
      .then((json) => setData(json))
      .catch((error) => {
        console.log('fetch data failed', error);
      });
  };

  /** 定义每个字段的别名 和 展示格式 */
  const meta = {
    timePeriod: {
      alias: '时间',
      formatter: (v) => `${v}`,
    },
    value: {
      alias: '比例',
      formatter: (v) => {
        return `${`${v.toFixed(1)}%`.replace(
          /\d{1,3}(?=(\d{3})+$)/g,
          (s) => `${s},`
        )}`;
      },
    },
  };

  const originalPropsConfig = {
    xAxis: {
      range: [0, 1],
    },
  };

  useEffect(() => {
    asyncFetch();
  }, []);

  return (
    <>
      <div className="com-chartbox">
        <YwAreaChart
          className="line-chart"
          data={data}
          xField="timePeriod"
          yField="value"
          meta={meta}
          originalProps={originalPropsConfig}
        />
      </div>
    </>
  );
};

ReactDOM.render(<App />, mountNode);
```
