带刻度的雷达图

作者: 家有饿犬和聋猫 | 来源:发表于2020-04-03 17:51 被阅读0次
    import React, { Component } from 'react';
    import EchartBase from 'components/common/echarts/base/EchartBase';
    import echarts from 'echarts';
    import styles from './radar.scss';// 样式
    import cns from 'classnames';
    export default class Radar extends Component {
        constructor(props){
            super(props);
            this.state = {
                data: {
                    indicator: [
                        { name: 'AA级', max: 100},
                        { name: 'A级', max: 100},
                        { name: 'B级', max: 100},
                        { name: 'C级', max: 100},
                        { name: 'D级', max: 100}
                    ],
                    value: [78, 75, 96, 54, 68]
                } 
            };
        }
        render() {
            const {data, data: {indicator, value}} = this.state;
            let num = Array.isArray(value) ? value.reduce((pre, cur)=>pre + cur) : 0;
            // console.log('num', ((4300 / num).toFixed(4) * 100).toFixed(2));
            return <div style={{width: '100%', height: '100%'  }} className={cns(styles.topCity)} >
                      
                        <div style={{width: '63%', height: '100%'  }} className={cns(styles.charts, 'foatL')}  >
                            <EchartBase option={setOption(data)}  />
                        </div>
                        <div style={{width: '36%', height: '90%'  }} className={cns(styles.probox, 'foatL')}   >
                           {
                                indicator.map(
                                    (p, index)=><div className={cns(styles.value)} >
                                        <div className={cns(styles.line)}>{p.name}企业数量:<span>{value[index]}</span></div>
                                        <div className={cns(styles.line)}>{p.name}企业占比:<span>{((value[index] / num).toFixed(4) * 100).toFixed(2)}%</span></div>
                                        </div>
                                )
                           }
                        </div>
                   </div>;
            
        }
    }
    const setOption = (data) => {
        return {
            tooltip: {},
            radar: {
                // shape: 'circle',
                name: {
                    textStyle: {
                        color: '#fff',
                        fontSize: 14
                    }
                },
                center: ['50%', '40%'], // zuo shang
                shape: 'circle',
                radius: '70%',
                startAngle: 130,
                indicator: data.indicator,
                splitArea: { // 坐标轴在 grid 区域中的分隔区域,默认不显示。
                    show: true,
                    areaStyle: { // 分隔区域的样式设置。
                        color: '#01134C' // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
                    }
                },
                axisLine: { // 指向外圈文本的分隔线样式
                    lineStyle: {
                        color: '#0090FF'
                    }
                },
                splitLine: {
                    lineStyle: {
                        color: '#0090FF', // 分隔线颜色
                        width: 1 // 分隔线线宽
                    }
                }
            },
            polar: {
                center: ['50%', '40%'],
                radius: '70%'
    
            },
            angleAxis: {
                min: 0,
                max: 360,
                interval: 5,
                clockwise: false,
                axisTick: {
                    show: false
                },
                axisLabel: {
                    show: false
                },
                axisLine: {
                    show: false
                },
                splitLine: {
                    show: false
                }
            },
            radiusAxis: {
                min: 0,
                max: 100,
                // interval: 10,
                splitArea: {
                    show: false
                },
                nameTextStyle: {
                    color: '#fff'
                },
                axisTick: {
                    show: true,
                    inside: true,
                    lineStyle: {
                        color: '#fff',
                        fontSize: 12
                    } 
                   
                },
                axisLine: {     
                    lineStyle: {
                        color: '#0940D9'   // 坐标轴线
                    }
                },
                axisLabel: {
                    color: '#fff'   // 刻度标签文字的颜色
                }
            },
            series: [{
                type: 'radar',
                data: [{
                    value: data.value,
                    name: '信用评价等级分布'
                }],
                areaStyle: {
                    normal: {
                        color: 'rgba(255,218,43,0.5)'
                    }
                },
                lineStyle: {
                    normal: {
                        // type: 'dashed',
                        color: 'rgba(255,218,43, 1)',
                        width: 2
                    }
                },
                itemStyle: {
                    normal: {
                        color: '#FFDA2B'
                    }
                }
            }]
        };
    };
    
    
    
    image.png

    把polar图和radar图合并,显示刻度

    相关文章

      网友评论

        本文标题:带刻度的雷达图

        本文链接:https://www.haomeiwen.com/subject/hwlkphtx.html