ThinkAdmin中使用echarts的饼状图 并把百分比显示在圆环上

简介: ThinkAdmin中使用echarts的饼状图 并把百分比显示在圆环上

1. 页面

<div class="layui-col-xs12 layui-col-md3">
     <div class="think-box-shadow">
         <div id="main2" style="width:100%;height:350px"></div>
     </div>
 </div>
<!--
循环 可忽略不计
{foreach $levels as $set=>$value}
      {foreach $value as $key=>$vo}
      <div class="layui-col-xs12 layui-col-md3">
          <div class="think-box-shadow">
              <div id="{$key}" style="width:100%;height:350px"></div>
          </div>
      </div>
      {/foreach}
  {/foreach}
-->

2. 页面接收并处理数组

 <label class="layui-hide">
     <textarea id="jsondata2">{$days|json_encode}</textarea>
     <textarea id="jsondata4">{$daysmoy|json_encode}</textarea>
     <textarea id="jsondata3">{$levels|json_encode}</textarea>
 </label>

3. 页面在script中处理并设置号

<script>
    require(['echarts'], function (echarts) {  
        var data2 = JSON.parse($('#jsondata2').html());
        var data4 = JSON.parse($('#jsondata4').html());
        var data3 = JSON.parse($('#jsondata3').html());
        // 总共呢个
        var chart2 = echarts.init(document.getElementById('main2'));
        var chart3 = echarts.init(document.getElementById('main3'));
        window.addEventListener("resize", function () {
            chart2.resize()
            chart3.resize()
        });
        chart3.setOption({
            title: {text: '物业金额总数据', left: 'right'},
            tooltip: {trigger: 'item',formatter: '{a} <br/>{b} : {c} 元 ( {d}% )'},
            legend: {orient: 'vertical', left: 'left'},
            series: [
                {
                    name: '物业金额总数据',
                    type: 'pie',
                    radius: ['40%', '70%'],
                    avoidLabelOverlap: false,
                    label: {
                        // show: false,
                        // position: 'center'  
                        normal: {
                            show:true,
                            position:'inner',
                            textStyle: {
                                fontWeight: 200,
                                fontSize: 15 ,  //文字的字体大小
                                color:'#fff'
                            },
                            formatter: '{d}%',/*饼状图内显示百分比*/
                        },
                    },
                    emphasis: {
                        label: {
                            show: true,
                            fontSize: '17',
                            fontWeight: 'bold'
                        }
                    },
                    labelLine: {
                        show: false
                    },
                    data:data4.map(function (item) {
                        return {name: item.name, value: item.value,itemStyle: { normal:{color: item.color_com} } }
                    }),
                }
            ]
        });
        chart2.setOption({
            title: {text: '物业数量总数据', left: 'right'},
            tooltip: {trigger: 'item',formatter: '{a} <br/>{b} : {c} 个 ( {d}% )'},
            legend: {orient: 'vertical', left: 'left'},
            series: [
                {
                    name: '物业数量总数据',
                    type: 'pie',
                    radius: ['40%', '70%'],
                    avoidLabelOverlap: false,
                    label: {
                        // show: false,
                        // position: 'center'  
                        normal: {
                            show:true,
                            position:'inner',
                            textStyle: {
                                fontWeight: 200,
                                fontSize: 15 ,  //文字的字体大小
                                color:'#fff'
                            },
                            formatter: '{d}%',/*饼状图内显示百分比*/
                        },
                    },
                    emphasis: {
                        label: {
                            show: true,
                            fontSize: '17',
                            fontWeight: 'bold'
                        }
                    },
                    labelLine: {
                        show: false
                    },
                    data:data2.map(function (item) {
                        return {name: item.name, value: item.value,itemStyle: { normal:{color: item.color_com} } }
                    }),
                }
            ]
        });
        // 单个
        data3.forEach(element => {
        for(let key in element){
            (function (charts) {
                window.addEventListener("resize", function () {
                    charts.resize()
                });           
                charts.setOption({
                    title: {text: element[key][0], left: 'right'},
                    legend: {orient: 'vertical', left: 'left'},
                    tooltip: {trigger: 'item',formatter: '{a} <br/>{b} : {c}  ( {d}% )'},
                    series: [
                    {
                        name: element[key][0],
                        type: 'pie',
                        radius: ['40%', '70%'],
                        avoidLabelOverlap: false,
                        label: {
                            // show: false,
                            // position: 'center'  
                            normal: {
                                show:true,
                                position:'inner',
                                textStyle: {
                                    fontWeight: 200,
                                    fontSize: 15  ,  //文字的字体大小
                                    color:'#fff'
                                },
                                formatter: '{d}%',/*饼状图内显示百分比*/
                            },
                        },
                        emphasis: {
                            label: {
                                show: true,
                                fontSize: '17',
                                fontWeight: 'bold'
                            }
                        },
                        labelLine: {
                            show: false
                        },
                        data: element[key].map(function (item) {
                            return {name: item.name, value: item.value,itemStyle: { normal:{color: item.color_com} }}
                        }),
                    }
                    ]
                });
            })(echarts.init(document.getElementById(key)));
        };
    });
    });
</script>
目录
相关文章
|
JavaScript
一招教你实现自适应浏览器大小的Echarts饼状图
一招教你实现自适应浏览器大小的Echarts饼状图
383 0
|
5月前
【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图
【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图
494 0
echarts圆环图设置legend数据对齐百分比样式使用rich富文本标签和formatter函数
echarts圆环图设置legend数据对齐百分比样式使用rich富文本标签和formatter函数
792 0
Echarts饼状图大小及其位置调整
Echarts饼状图大小及其位置调整
246 1
Echarts图表中饼状图的指示线条
Echarts图表中饼状图的指示线条
87 1
|
JSON 数据格式
Echarts饼状图修改图例legend文字颜色和字体大小
Echarts饼状图修改图例legend文字颜色和字体大小
1666 1
去掉Echarts饼状图的引导线
去掉Echarts饼状图的引导线
164 0
|
JSON 数据格式
Echarts的饼状图变成环形图
Echarts的饼状图变成环形图
62 0
|
JSON 前端开发 数据格式
Echarts饼状图数据交互请求ajax自定义颜色
Echarts饼状图数据交互请求ajax自定义颜色
42 0
|
JSON 数据格式
Echarts饼状图交互数据
Echarts饼状图交互数据
72 0