React中如何使用Echarts(饼、折线、柱)

 下载Echarts插件

npm i echarts-for-react

 引入模块

import ReactEcharts from 'echarts-for-react';

 一、饼状图

import React, { useState } from 'react';
import { Card, Row, Col, } from 'antd';
import ReactEcharts from 'echarts-for-react';

const BingEch = (props) => {
    const [sales, setSales] = useState([5, 20, 36, 10, 10, 20]);
    const [stores, setStores] = useState([15, 120, 36, 110, 110, 20]);
    // 配置对象
    const getOption = (sal, sto) => {
        return {
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {
                orient: 'vertical',
                left: 'left',
                textStyle: {
                    fontSize: 13,
                    color: '#FFFFFF',
                },
                data: ['重启', '找人帮忙', '放弃使用', '想法修复']
            },
            series: [
                {
                    name: '访问来源',
                    type: 'pie',
                    radius: '55%',
                    center: ['50%', '60%'],
                    data: [
                        { value: 1835, name: '重启' },
                        { value: 310, name: '找人帮忙' },
                        { value: 234, name: '放弃使用' },
                        { value: 135, name: '想法修复' }
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        }
    };

    return (
        <div>
            <Row gutter={24}>
                <Col span={24}>
                    <ReactEcharts option={getOption(sales, stores)} style={{marginTop:"30px"}} />

                </Col>
            </Row>
        </div>
    )
}

export default BingEch

效果实现

 二、折线图

import React, { useState } from 'react';
import { Card, Row, Col, } from 'antd';
import ReactEcharts from 'echarts-for-react';
const HomePage = (props) => {
    const [sales, setSales] = useState([5, 20, 36, 10, 10, 20,158]);
    const [stores, setStores] = useState([15, 120, 36, 110, 110, 20,50]);
    const [ccc ,setccc] = useState([150,105,30,64,85,154,36])
    const [Visual ,setVisual] = useState([130,148,60,64,59,160,180])
    const [cc3 ,setcc3] = useState([140,50,80,64,25,184,180])
    const [Javascript ,setJavascript] = useState([160,60,180,64,45,134,180])
    const [PHP ,setPHP] = useState([170,80,160,94,75,144,80])
    const [Python ,setPython] = useState([170,80,160,94,75,144,80])
    // 配置对象
    const getOption = (sal, sto) => {
        return {
            tooltip: {},
            legend: {
                data: ['Java', 'C',"C++","Python","Visual Basic NET","C#","Javascript","PHP","SQL","Objective-C"]
            },
            xAxis: {
                data: ["1989", "1994", "1999", "2004", "2009", "2014","2019"],

            },
            yAxis: {},
            series: [{
                name: 'Java',
                type: 'line',
                data: sales,
            },
            {
                name: 'C',
                type: 'line',
                data: stores
            },
            {
                name: 'C++',
                type: 'line',
                data: ccc
            },
            {
                name: 'Python',
                type: 'line',
                data: Python
            },
            {
                name: 'Visual Basic NET',
                type: 'line',
                data: Visual
            },
            {
                name: 'C#',
                type: 'line',
                data: cc3
            },
            {
                name: 'Javascript',
                type: 'line',
                data: Javascript
            },
            {
                name: 'PHP',
                type: 'line',
                data: PHP
            },
            {
                name: 'SQL',
                type: 'line',
                data: stores
            },
            {
                name: 'Objective-C',
                type: 'line',
                data: stores
            },

            ],
            legend:{
                textStyle: {
                    fontSize: 13,
                    color: '#FFFFFF',
                  }
            }
        }
    };

    return (
        <div id='zhexian'>
            <Row gutter={14} >
                <Col span={24} Col={25} style={{marginTop:"30px"}}>
                    <ReactEcharts option={getOption(sales, stores,ccc,Visual)} />
                </Col>
            </Row>
        </div>
    )
}

export default HomePage

       效果展示 

 

 三、 柱状图

import React, { useState } from 'react';
import { Card, Row, Col, } from 'antd';
import ReactEcharts from 'echarts-for-react';
const ZhuEch = (props) => {
    const [sales, setSales] = useState([25, 50, 80, 50, 30, 10]);
    const [work, setwork] = useState([36, 120, 30, 105, 80, 20]);
    const [study, setstudy] = useState([66, 80, 36, 100, 30, 60]);
    const [qita, setqita] = useState([39, 120, 36, 11, 80, 70]);
    const [stores, setstores] = useState([16, 125, 36, 110, 60, 40]);
    // 配置对象
    const getOption = (sal, sto) => {
        return {
            tooltip: {},
            legend: {
                data: ['吃饭', '睡觉',"工作","学习","其他"]
            },
            xAxis: {
                data: ["周日", "周一", "周二", "周三", "周四", "周五","周六"]
            },
            yAxis: {},
            series: [{
                name: '吃饭',
                type: 'bar',
                data: sales
            },
            {
                name: '睡觉',
                type: 'bar',
                data: stores
            },{
                name: '工作',
                type: 'bar',
                data: work
            },{
                name: '学习',
                type: 'bar',
                data: study
            },{
                name: '其他',
                type: 'bar',
                data:qita
            }],
            legend:{
                textStyle: {
                    fontSize: 13,
                    color: '#FFFFFF',
                  }
            }
        }
    };

    return (
        <div>
            <Row gutter={30}>
                <Col span={24} >
                    <ReactEcharts option={getOption(sales, stores)} style={{marginTop:"30px"}} />
                </Col>
            </Row>
        </div>
    )
}

export default ZhuEch

 效果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值