Echarts中雷达图的使用&legend过多需要出现滚动条的办法

ECharts Legend滚动效果
本文介绍如何在ECharts中实现legend滚动效果,通过设置legend的type属性为'scroll'即可实现。同时提供了完整的HTML示例代码,展示了如何加载ECharts及其扩展库,并设置了雷达图的相关配置。

效果图:
雷达图


legend过多需要出现滚动条的办法:

legend中的属性这样设置即可:type:’scroll
注意引用的js版本,最好是比较新的版本


html代码如下:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>echarts雷达图</title>
    <!--<link rel="shortcut icon" href="favicon.png">-->
    <style>
        .main {
            height: 600px;
            width:300px,
            overflow: hidden;
            padding : 10px;
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    <div id="main" class="main"></div>
    <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
       <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
       <script type="text/javascript">
        var myChart;
        var domMain = document.getElementById('main');

        option = {
                    backgroundColor: {
                                type: 'radial',
                                x: 0.5,
                                y: 0.4,
                                r: 0.3,
//                              colorStops: [{
//                                      offset: 0,
//                                      color: '#895355' // 0% 处的颜色
//                              }, {
//                                      offset: .2,
//                                      color: '#593640' // 100% 处的颜色
//                              }, {
//                                      offset: 1,
//                                      color: '#39273d' // 100% 处的颜色
//                              }],
                                globalCoord: false // 缺省为 false
                        },
                    tooltip: {
                            trigger: 'item',
                    },
                    legend: {
                            type:'scroll',//就这一个属性 设置legend滚动轴的出现
                            show: true,
                            bottom: 5,
                            left: 16,
                            itemWidth: 14,
                            itemHeight: 10,
                            itemGap: 48,
                            width: 680,
                            height: 80,
                            align: 'auto',
                            data: ['紫阳之星','花堤街社区','二机宿舍','读书院','城市花园','金榜名苑','商家巷社区','武汉生物研究所宿舍','阅马场实验小学宿舍','人民医院宿舍'],
                            textStyle: {
                                    color: '#fff',
                                    fontSize: 14,
                            },
                            selectedMode: true,
                            orient: 'horizontal',
                            selected: {  
                                                    '紫阳之星' : false,  
                                                    '花提街社区' : false,  
                                                    //不想显示的都设置成false  
                                                } 
                    },
                    textStyle: {
                            color: '#4ac7f5',
                            fontSize: 16,
                    },
                    visualMap: {
                            min: 0,
                            max: 100,
                            calculable: true,
                            itemWidth: 14,
                            itemHeight: 165,
                            align: 'left',
                            color: ['#3f4199','#5d54b5','#a0589e','#e76281','#fe846d','#feda5b'],
                            right: 0,
                            bottom: 0,
                            textStyle: {
                                    // color: '#4ac7f5',
                                    fontSize: 14,
                            }
                    },
                    radar: {
                         center: ['400', '300'],//中心(圆心)坐标
                         radius: 215,//半径
                         startAngle: 90,//坐标系起始角度,也就是第一个指示器轴的角度。
                         nameGap: 16,//指示器名称和指示器轴的距离。
                         splitNumber: 4,//指示器轴的分割段数
                         shape: 'polygon',//雷达图绘制类型,支持 'polygon' 和 'circle'
                         axisLine: { //坐标轴轴线
                                 show: true,
                                 lineStyle: {
                                         // color: '#564d8e',
                                         width: 1,
                                 },
                         },
                         splitLine: {//坐标轴在 grid 区域中的分隔线。
                                 show: true,
                                 lineStyle: {
                                         // color: '#4b476f',
                                         width: 1,
                                 },
                         },
                         splitArea: {//坐标轴在 grid 区域中的分隔区域,默认不显示。
                                 show: true,
                                 areaStyle: {
                                         // color: '#2c2949'
                                 },
                         },
                         indicator : [
                                 { text: '超速', max: 100},
                                 { text: '变道 ', max: 100},
                                 { text: '起步不关门', max: 100},
                                 { text: '未停稳开门', max: 100},
                                 { text: '急加速', max: 100},
                                 { text: '急减速', max: 100}
                            ]
                    },
                    series : {
                                            name:'违规占比雷达图',
                                            type: 'radar',
                                            symbol: 'none',
                                            areaStyle: {//区域填充样式
                                                    emphasis: {
                                                            opacity: 0.3,
                                                    },
                                            },
                                            lineStyle: {
                                                    normal: {
                                                            width: 0.8,
                                                    },
                                            },
                                            data: [
                                                    {name: '紫阳之星',value: [100,80,30,30,40,80]},
                                                    {name: '花堤街社区',value: [95,75,35,35,45,75]},
                                                    {name: '二机宿舍',value: [90,72,40,40,50,70]},
                                                    {name: '读书院',value: [85,70,45,45,55,65]},
                                                    {name: '城市花园',value: [80,68,50,50,60,60]},
                                                    {name: '金榜名苑',value: [75,65,55,55,65,55]},
                                                    {name: '商家巷社区',value: [70,62,60,60,70,50]},
                                                    {name: '武汉生物研究所宿舍',value: [65,60,65,65,75,45]},
                                                    {name: '阅马场实验小学宿舍',value: [60,58,70,70,80,40]},
                                                    {name: '人民医院宿舍',value: [55,55,75,75,85,35]}
                                            ]
                    }
            };


        myChart = echarts.init(domMain);
        myChart.setOption(option, true)
    </script>
</body>
</html>
<think>我们正在讨论ECharts雷达例(legend)超出容器范围时如何实现滚动控制。 根据ECharts文档,例组件提供了滚动功能,当例项数量过时,可以通过设置legend.type为'scroll'来启用滚动模式。 此外,还可以通过legend.pageButtonItemGap, legend.pageButtonGap, legend.pageButtonPosition等属性调整滚动按钮的位置和样式。 具体实现步骤: 1. 在legend配置项中设置type: 'scroll'。 2. 可以调整例区域的高度(通过设置legend.height)或设置例项的最大显示数量(legend.max)来控制一页显示少个例项。 3. 如果需要自定义滚动按钮的位置和样式,可以通过pageIcons, pageButtonItemGap, pageButtonGap, pageButtonPosition等属性设置。 注意:在雷达中,例的配置与其他表类型相同。 示例配置: ```javascript legend: { type: 'scroll', orient: 'horizontal', // 例水平排列 bottom: 10, // 例距离容器底部距离 height: '30%', // 设置例区域高度,避免例项过时超出容器 // 其他属性... } ``` 如果例项过,超出容器范围,使用滚动模式后,例区域会出现左右(水平排列时)或上下(垂直排列时)的滚动箭头,用户可以通过点击箭头或拖动例来查看被隐藏的例项。 引用ECharts官方文档中关于滚动模式的部分:[^1] 因此,解决雷达例超出容器的问题,主要就是通过配置例的滚动模式。 现在,我们来生成相关问题:</think>### ECharts 雷达滚动控制解决方案 当雷达例项过超出容器范围时,可通过以下配置实现滚动控制: #### 核心配置项 ```javascript legend: { type: 'scroll', // 启用滚动模式 orient: 'horizontal', // 水平排列(垂直排列用 'vertical') bottom: 10, // 距离容器底部距离 itemHeight: 14, // 例项高度 itemWidth: 25, // 例项宽度 itemGap: 10, // 例项间距 pageButtonItemGap: 5, // 翻页按钮间距 pageButtonGap: 10, // 翻页按钮与例间距 pageIconSize: 15, // 翻页按钮尺寸 pageFormatter: '', // 隐藏页码文字 pageIconColor: '#333',// 按钮颜色 pageIconInactiveColor: '#aaa', // 禁用按钮颜色 formatter: name => name.length > 6 ? name.slice(0,6)+'...' : name // 名称过长截断 } ``` #### 完整配置示例 ```javascript option = { legend: { type: 'scroll', data: ['指标1','指标2','指标3', ... ,'指标20'], // 长例列表 orient: 'horizontal', bottom: 0, height: '15%', // 限制例容器高度 pageButtonItemGap: 3, pageIconSize: 12, textStyle: { fontSize: 10 } }, radar: { indicator: [ /* 雷达指标配置 */ ] }, series: [{ type: 'radar', data: [ /* 数据系列 */ ] }] }; ``` #### 关键参数说明: 1. **`type: 'scroll'`** 启用滚动模式的核心开关,当例超出容器时自动显示滚动控件[^1] 2. **`orient` 方向控制** - `horizontal`:水平滚动(左右箭头) - `vertical`:垂直滚动(上下箭头) 3. **尺寸控制** - `itemHeight`/`itemWidth`:控制单个例项尺寸 - `height`:限制例容器高度(触发滚动) - `pageIconSize`:调整翻页按钮大小 4. **响应式优化** 建议通过媒体查询动态调整例尺寸: ```javascript media: [{ query: { maxWidth: 768 }, option: { legend: { height: '20%', itemGap: 5 } } }] ``` #### 效果演示 ![示](https://echarts.apache.org/examples/zh/data/thumb/radar.jpg) _例超出容器时自动显示滚动控件(左右箭头)[^1]_ > 提示:当例项数量超过容器容量时,滚动控件会自动出现。可通过`pageButtonPosition: 'start'`或`'end'`调整按钮位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值