eacharts 饼图 label formatter 自定义样式和数据拼接

35 篇文章 0 订阅
21 篇文章 0 订阅

series 中的label formatter 无法使用html 模板 ,当官方定义的

{a}:系列名。

{b}:数据名。

{c}:数据值。

{d}:百分比。

{@xxx}:数据中名为'xxx'的维度的值,如{@product}表示名为'product'` 的维度的值。

{@[n]}:数据中维度n的值,如{@[3]}` 表示维度 3 的值,从 0 开始计数。

这些属性无法满足我们对于数据展示的需求时候 需要这样做

 series:[
    {
      label:{
        normal:{
         formatter:function(e){
            let data=e.data;
                return  `{a|${data.parentName}}{abg|}\n{hr|}\n{b|${data.name}:}${data.value} \n{per|${data.proportion}%}`                                         
                        },    
        }       
      }
    }
 ]

其中 ${}里面的数据 可以展示我们从后台拿过来的任意数据  a,abg,b 这些是通过rich 富文本属性对其样式进行美化

  rich: {
                            a: {
                                color: '#black',
                                lineHeight: 22,
                                align: 'center'
                            },
                            abg: {
                                backgroundColor: '#74D0E5',
                                width: '100%',
                                align: 'right',
                                height: 22,
                                color:"#353535",
                                borderRadius: [4, 4, 0, 0]
                            },
                            hr: {
                                borderColor: '#aaa',
                                width: '100%',
                                borderWidth: 0.5,
                                height: 0
                            },
                            b: {
                                fontSize: 14,
                                lineHeight: 25,
                                color:"#fff"
                            },
                            per: {
                                color: '#fff',
                                backgroundColor: '#00C0FF',
                                padding: [3, 4,3,5],
                               
                                borderRadius: 2,
                                align:"left",
                                left:"3%"
                                
                                
                            }
                        }

最后就可以展示自己的数据了

如图所示,我想要嵌套图的外圈名字与内圈关联起来,这个方法就起到了作用

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让cesium点击后显示eacharts饼图,我们需要进行一些步骤。 首先,我们需要将cesium和eacharts两个库引入到项目中。可以通过在HTML文件的头部添加相应的script标签来实现。例如: ``` <script src="cesium.js"></script> <script src="eacharts.js"></script> ``` 接下来,我们需要创建一个cesium点击事件监听器。可以使用cesium的Entity类来创建一个可点击的实体。例如: ``` var entity = viewer.entities.add({ name : 'Click entity', position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), ellipsoid : { radii : new Cesium.Cartesian3(200000.0, 200000.0, 300000.0), material : Cesium.Color.RED.withAlpha(0.5), outline : true, outlineColor : Cesium.Color.BLACK } }); viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) { var pickedObject = viewer.scene.pick(movement.position); if (Cesium.defined(pickedObject) && pickedObject.id === entity) { // 点击实体时执行的操作 showPieChart(); } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); ``` 上述代码在地图上创建了一个红色的球体实体,并为其添加了点击事件监听器。当点击该实体时,将调用showPieChart函数来显示饼图。 最后,我们需要在showPieChart函数中实现将eacharts饼图显示出来的逻辑。可以通过在HTML文件中创建一个具有特定ID的div元素来显示饼图。并使用eacharts库的API来生成饼图数据和配置。例如: ``` function showPieChart() { var pieChartDiv = document.getElementById('pieChartDiv'); // 使用eacharts生成饼图数据和配置 var chart = echarts.init(pieChartDiv); var option = { series: [{ type: 'pie', data: [ {value: 335, name: 'Apple'}, {value: 310, name: 'Banana'}, {value: 234, name: 'Orange'}, {value: 135, name: 'Grapes'}, {value: 1548, name: 'Watermelon'} ] }] }; // 渲染饼图 chart.setOption(option); } ``` 上述代码将饼图数据和配置传递给echarts.init函数,并将其渲染在具有特定ID的div元素上,从而显示饼图。 通过以上步骤,我们可以在cesium点击实体时显示eacharts饼图。当点击实体时,将触发相应的点击事件监听器,并调用showPieChart函数来显示饼图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值