雷达图

原文链接:http://t.zoukankan.com/loveliang-p-13846653.html

  • 1.1实现效果

    1.2实现代码

    option = {
        title: {
            text: '雷达图',
            textStyle: {
                color: 'rgba(221,221,221,1)', //标题颜色
                fontSize: 14,
                lineHeight: 20,
            },
            // 标题的位置,此时放在图的底边
            left: 'center',
            top: 'bottom',
        },
        // 图表的位置
        grid: {
            position: 'center',
         },
         tooltip : {
         //雷达图的tooltip不会超出div,也可以设置position属性,position定位的tooltip
            confine: true,
            enterable: true, //鼠标是否可以移动到tooltip区域内
         },
        radar: {
            shape: 'circle',
            splitNumber: 8, // 雷达图圈数设置
            name: {
                textStyle: {
                    color: '#838D9E',
                },
            },
            // 设置雷达图中间射线的颜色
            axisLine: {
                lineStyle: {
                    color: 'rgba(131,141,158,.1)',
                    },
            },
            indicator: [{
                name: '健康状态', max: 30,
                //若将此属性放在radar下,则每条indicator都会显示圈上的数值,放在这儿,只在通信这条indicator上显示
                axisLabel: {
                    show: false,
                    fontSize: 12,
                    color: '#838D9E',
                    showMaxLabel: false, //不显示最大值,即外圈不显示数字30
                    showMinLabel: true, //显示最小数字,即中心点显示0
                },
            },
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            { name: '健康状态', max: 30},
            ],
            //雷达图背景的颜色,在这儿随便设置了一个颜色,完全不透明度为0,就实现了透明背景
            splitArea : {
                show : false,
                areaStyle : {
                    color: 'rgba(255,0,0,0)', // 图表背景的颜色
                },
            },
            splitLine : {
                show : true,
                lineStyle : {
                    width : 1,
                    color : 'rgba(131,141,158,.1)', // 设置网格的颜色
                },
            },
        },
        series: [{
            name: '雷达图', // tooltip中的标题
            type: 'radar', //表示是雷达图
            symbol: 'circle', // 拐点的样式,还可以取值'rect','angle'
            symbolSize: 8, // 拐点的大小
    
            areaStyle: {
                normal: {
                     1,
                    opacity: 0.2,
                },
            },
            data: [
                {
                    value: [17, 24, 27, 29, 26, 16, 13, 17, 25,12],
                    name: '2018-07',
                    // 设置区域边框和区域的颜色
                    itemStyle: {
                        normal: {
                            color: 'rgba(255,225,0,.3)',
                            lineStyle: {
                                color: 'rgba(255,225,0,.3)',
                            },
                        },
                    },
                },
               
               
            ],
        }],
    }
    
    

    2.1实现效果

    2.2实现代码

    // 指定图表的配置项和数据
    var option = {
        backgroundColor: 'rgba(204,204,204,0.7 )',
        // 背景色,默认无背景    rgba(51,255,255,0.7)
        title: {
            text: '健康状态统计',
            link: '',
            target: 'blank',
            top: '5%',
            left: '3%',
            textStyle: {
                color: '#fff',
                fontSize: 20,
            }
        },
    
        legend: { // 图例组件
            show: true,
            icon: 'rect',
            // 图例项的 icon。ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'也可以通过 'image://url' 设置为图片,其中 url 为图片的链接,或者 dataURI。可以通过 'path://' 将图标设置为任意的矢量路径。 
            top: '40%',
            // 图例距离顶部边距
            left: '15%',
            // 图例距离左侧边距
            itemWidth: 10,
            // 图例标记的图形宽度。[ default: 25 ]
            itemHeight: 10,
            // 图例标记的图形高度。[ default: 14 ]
            itemGap: 30,
            // 图例每项之间的间隔。[ default: 10 ]横向布局时为水平间隔,纵向布局时为纵向间隔。
            orient: 'vertical',
            // 图例列表的布局朝向,'horizontal'为横向,''为纵向.
            textStyle: { // 图例的公用文本样式。
                fontSize: 15,
                color: '#fff'
            },
            data: [{ // 图例的数据数组。数组项通常为一个字符串,每一项代表一个系列的 name(如果是饼图,也可以是饼图单个数据的 name)。图例组件会自动根据对应系列的图形标记(symbol)来绘制自己的颜色和标记,特殊字符串 ''(空字符串)或者 '
    '(换行字符串)用于图例的换行。
                name: '男',
                // 图例项的名称,应等于某系列的name值(如果是饼图,也可以是饼图单个数据的 name)。 
                icon: 'rect',
                // 图例项的 icon。
                textStyle: { // 图例项的文本样式。
                    color: 'rgba(51,0,255,1)',
                    fontWeight: 'bold' // 文字字体的粗细,可选'normal','bold','bolder','lighter'
                }
            },
            {
                name: '女',
                icon: 'rect',
                textStyle: {
                    color: 'rgba(255,0,0,1)',
                    fontWeight: 'bold' // 文字字体的粗细,可选'normal','bold','bolder','lighter'
                }
            }],
        },
    
        radar: [{ // 雷达图坐标系组件,只适用于雷达图。
            center: ['50%', '50%'],
            // 圆中心坐标,数组的第一项是横坐标,第二项是纵坐标。[ default: ['50%', '50%'] ]
            radius: 160,
            // 圆的半径,数组的第一项是内半径,第二项是外半径。
            startAngle: 90,
            // 坐标系起始角度,也就是第一个指示器轴的角度。[ default: 90 ]
            name: { // (圆外的标签)雷达图每个指示器名称的配置项。
                formatter: '{value}',
                textStyle: {
                    fontSize: 15,
                    color: '#000'
                }
            },
            nameGap: 15,
            // 指示器名称和指示器轴的距离。[ default: 15 ]
            splitNumber: 8,
            // (这里是圆的环数)指示器轴的分割段数。[ default: 5 ]
            shape: 'circle',
            // 雷达图绘制类型,支持 'polygon'(多边形)  'circle'(圆)。[ default: 'polygon' ]
            axisLine: { // (圆内的几条直线)坐标轴轴线相关设置
                lineStyle: {
                    color: '#fff',
                    // 坐标轴线线的颜色。
                     1,
                    // 坐标轴线线宽。
                    type: 'solid',
                    // 坐标轴线线的类型。
                }
            },
            splitLine: { // (这里是指所有圆环)坐标轴在 grid 区域中的分隔线。
                lineStyle: {
                    color: '#fff',
                    // 分隔线颜色
                     2,
                    // 分隔线线宽
                }
            },
            splitArea: { // 坐标轴在 grid 区域中的分隔区域,默认不显示。
                show: true,
                areaStyle: { // 分隔区域的样式设置。
                    color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)'],
                    // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
                }
            },
            indicator: [{ // 雷达图的指示器,用来指定雷达图中的多个变量(维度),跟data中 value 对应
                name: '高中',
                // 指示器名称 
                max: 15000,
                // 指示器的最大值,可选,建议设置 
                //color: '#fff' // 标签特定的颜色。
            },
            {
                name: '专科',
                max: 10000
            },
            {
                name: '本科',
                max: 8000
            },
            {
                name: '硕士',
                max: 2000
            },
            {
                name: '博士',
                max: 500
            }]
        }],
        series: [{
            name: '雷达图',
            // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列。
            type: 'radar',
            // 系列类型: 雷达图
            itemStyle: { // 折线拐点标志的样式。
                normal: { // 普通状态时的样式
                    lineStyle: {
                         1
                    },
                    opacity: 0.2
                },
                emphasis: { // 高亮时的样式
                    lineStyle: {
                         5
                    },
                    opacity: 1
                }
            },
            data: [{ // 雷达图的数据是多变量(维度)的
                name: '女',
                // 数据项名称
                value: [11035, 6013, 5067, 1520, 184],
                // 其中的value项数组是具体的数据,每个值跟 radar.indicator 一一对应。
                symbol: 'circle',
                // 单个数据标记的图形。
                symbolSize: 5,
                // 单个数据标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10。
                label: { // 单个拐点文本的样式设置 
                    normal: {
                        show: true,
                        // 单个拐点文本的样式设置。[ default: false ]
                        position: 'top',
                        // 标签的位置。[ default: top ]
                        distance: 5,
                        // 距离图形元素的距离。当 position 为字符描述值(如 'top'、'insideRight')时候有效。[ default: 5 ]
                        color: 'rgba(255,0,0,1)',
                        // 文字的颜色。如果设置为 'auto',则为视觉映射得到的颜色,如系列色。[ default: "#fff" ]
                        fontSize: 14,
                        // 文字的字体大小
                        formatter: function(params) {
                            return params.value;
                        }
                    }
                },
                itemStyle: { // 单个拐点标志的样式设置。
                    normal: {
                        borderColor: 'rgba(255,0,0,1)',
                        // 拐点的描边颜色。[ default: '#000' ]
                        borderWidth: 3,
                        // 拐点的描边宽度,默认不描边。[ default: 0 ]
                    }
                },
                lineStyle: { // 单项线条样式。
                    normal: {
                        opacity: 0.5 // 图形透明度
                    }
                },
                areaStyle: { // 单项区域填充样式
                    normal: {
                        color: 'rgba(255,0,0,0.6)' // 填充的颜色。[ default: "#000" ]
                    }
                }
            },
            {
                name: '男',
                value: [13408, 5065, 5947, 856, 302],
                symbol: 'circle',
                symbolSize: 5,
                label: {
                    normal: {
                        show: true,
                        position: 'top',
                        distance: 5,
                        color: 'rgba(51,0,255,1)',
                        fontSize: 14,
                        formatter: function(params) {
                            return params.value;
                        }
                    }
                },
                itemStyle: {
                    normal: {
                        borderColor: 'rgba(51,0,255,1)',
                        borderWidth: 3,
                    }
                },
                lineStyle: {
                    normal: {
                        opacity: 0.5
                    }
                },
                areaStyle: {
                    normal: {
                        color: 'rgba(51,0,255,0.5)'
                    }
                }
            }]
        },
        ]
    };
posted @   joyfulest  阅读(262)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示