echarts 环形图配置 图例设置,中间文字设置

最近在工作项目中用到echarts进行制作一个环形图表,在网上查询了很多属性最终才制作成功,因此想总结一下,方便以后使用(第一次写博客,是不是这样写的哦)

  导入echarts.js啥的就不说了,直接开始配置属性。

 

option = {
                legend: {            //配置图例
                    itemWidth: 5,       //图例大小  我这里用的是圆
                    itemGap: 30,        //图例之间的间隔
                    orient: 'horizontal',   //布局方式,默认水平布局,另可选vertical
                    y: '80%',          //垂直放的位置,可以写top,center,bottom,也可以写px或者百分比。x轴方向同理,默认center
                    icon: "circle",      //图例的形状,选择类型有:"circle"(圆形)、"rectangle"(长方形)、"triangle"(三角形)、"diamond"(菱形)、"emptyCircle"(空心圆)、
                              "emptyRectangle"(空心长方形)、"emptyTriangle"(空心三角形)、"emptyDiamon"(空心菱形),还可以放自定义图片,格式为"image://path",
                              path为图片路径
                   
            selectedMode: false,    //选中哪个图例 false后图例不可点击
                    textStyle: {         
                        fontSize: 14,
                        fontFamily: "Microsoft YaHei",

                    },
                    data: [{name: '达标', textStyle: {color: "#3999dd"}}, {    //name和下面的series中data的name对应显示。后面加textStyle可设置图例后面文字的颜色
                        name: '未达标',
                        textStyle: {color: "#a3a6b4"}
                    }],
                    /*图例旁边显示数据*/
                    formatter: function (name) {
                        var legendIndex = 0;
                        var clientlabels = [{name: '达标', textStyle: {color: "#3999dd"}}, {
                            name: '未达标',
                            textStyle: {color: "#a3a6b4"}
                        }];
                        var clientcounts = [result.standardNum, result.noStandardNum];
                        clientlabels.forEach(function (value, i) {
                            if (value.name == name) {
                                legendIndex = i;
                            }
                        });
                        return name + " " + clientcounts[legendIndex];
                    }

                },
                color: ["#e3f9ff", "#3999dd"],    //环形图两部分的颜色
                graphic: [{                //环形图中间添加文字
                    type: 'text',            //通过不同top值可以设置上下显示
                    left: 'center',          
                    top: '30%',
                    style: {                
                        text: "80%"(自己设置显示内容),
                        textAlign: 'center',
                        fill: '#000',        //文字的颜色
                        width: 30,
                        height: 30,
                        fontSize: 18,
                        color: "#4d4f5c",
                        fontFamily: "Microsoft YaHei"
                    }
                }, {
                    type: 'text',
                    left: 'center',
                    top: '45%',
                    style: {
                        text: '达标率',
                        textAlign: 'center',
                        fill: '#000',
                        width: 30,
                        height: 30,
                        fontSize: 18,
                    }
                }],
                series: [              //配置数据啥的
                    {
                        name: '达标率',      
                        type: 'pie',        //设为饼图
                        radius: ['60%', '70%'],  //设置内半径和外半径,形成环状
               minAngle:15,         //设置最小角度
               startAngle:270       //设置起始角度
               clockWise:false,        //默认逆时针
                        avoidLabelOverlap: false,   //避免标注重叠
                        hoverAnimation: false,    //移入放大
                        silent: true,
                        center: ['50%', '40%'],
                        label: {
                            normal: {
                                show: false,
                                position: 'center'
                            },
                            emphasis: {
                                show: false,
                                textStyle: {
                                    fontSize: '30',
                                    fontWeight: 'bold'
                                }
                            }
                        },
                        labelLine: {
                            normal: {
                                show: false
                            }
                        },
                        data: [
                            {value: 20, name: '未达标'},
                            {value: 80, name: '达标'},
                        ]
                    }
                ]
            };

 

### ECharts 环形图例配置示例 对于希望实现带有滚动功能以及定时触发更新效果的环形,可以按照如下方式来配置: #### 基础配置项 首先定义基础选项 `option` ,其中包含了标题、提示框组件(tooltip)、图例(legend),还有系列列表(series)。特别注意的是,在此场景下,为了使图例支持滚动,需设置 `type:'scroll'` 和指定合适的高度宽度等属性给到 legend 组件。 ```javascript let option = { title: { text: '环形', subtext: '', left: 'center' }, tooltip: { trigger: 'item' }, legend: { orient: 'vertical', // 设置为垂直方向显示 top: '15%', left: '70%', // 调整位置参数适应页面布局需求 type: 'scroll', // 启用图例滚动条 height: 200 // 设定图例区域的高度 }, series: [ { name: '访问来源', type: 'pie', radius: ['40%', '70%'], avoidLabelOverlap: false, itemStyle: { borderRadius: 10, borderColor: '#fff', borderWidth: 2 }, label: { show: true, position: 'outside' } } ] }; ``` #### 定制化图例内容格式 为了让图例外观更加美观易读,可以通过 formatter 函数来自定义每一条目下的文字展示形式。这里给出一个例子,它会把名称和对应的数值分行显示出来,并应用样式标签 `{a|}` 来控制字体外观[^2]。 ```javascript legend: { ... formatter: function(name){ var target; for(var j=0;j<legenddata.length;j++){ if(legenddata[j].name===name){ target=legenddata[j].value; } } return '{a|'+name+'}\n{b|总金额:'+target+'}'; }, textStyle:{ rich:{} } }, ... ``` #### 实现自动高亮选中特定扇区的效果 通过调用实例对象上的 dispatchAction 方法并传入适当的动作类型与索引值即可达到目的。下面这段代码展示了如何每隔两秒切换下一个数据点被突出显示的状态[^1]。 ```javascript function setDispathAction(chartInstance,typeName,dIndex,total){ chartInstance.dispatchAction({ type:typeName, seriesIndex:0,// 序列索引 dataIndex:dIndex// 数据索引 }); setTimeout(function(){ let newIndex=dIndex+1>total?0:dIndex+1; setDispathAction(chartInstance,typeName,newIndex,total); },2000); } setDispathAction(myChart,'highlight',0,data.length-1); ``` 以上就是有关于 ECharts 中创建具有可滚动图例及动态交互特性的环形的一些基本指导信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值