echarts饼图实现多环形对比图

来源:http://blog.csdn.net/wlangmood/article/details/78087552

要求:展示室外温度、室内温度设定点、室内温度的多环形对比图

最终实现效果图:


代码实现详解:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="http://echarts.baidu.com/gallery/vendors/echarts/echarts-all-3.js"></script>
</head>
<body style="background-color:#0f234f;">
<div id="pie" style="width:500; height:500px;"></div>
<script>
var total = 50;//最大温度数据单独出来定义,方便环形总数的修改
var myChart = echarts.init(document.getElementById('pie');
placeHolderStyle = {
    normal: {
        label: {
            show: false,
        },
        labelLine: {
            show: false,
        }
    }
};
option = {
    title : {
        text: '室内温度',//主标题
        subtext: '26℃',//副标题
        textStyle: {//主标题样式
        color: '#fff',
        fontWeight: 'bold',
        fontSize: 20
        },
        subtextStyle: {//副标题样式
        color: '#fff',
        fontSize: 20,
        fontWeight: 'bold',
        color: '#0f0'
        },
        left:'center',
        top: 'middle'
    },
    tooltip: {
    show: true,
        trigger: 'item',//提示框触发类型,item数据项图形触发,主要应用于无类目轴的图表(散点图、饼形图等)
        formatter: function(params, ticket, callback) {//第一个参数数据集、第二个参数是异步回调标志、第三个参数是异步回调
            return params.seriesName + ": " + params.value + "℃";//系列名称:数据值
        }
    },
    color:['#dc1439','#e6b600','#053afe'],//调色盘颜色列表,默认情况下图例和饼形环图颜色使用
    legend: {
        top: "44px",
        left: "50%",
        itemHeight: 20,//图例的高度

 itemGap:10,//图例之间的间距        

data: ['室外温度', '室内温度设定点', '室内温度'],//图例的数据数组
        textStyle: {
            color: '#fff'
        },
        selectedMode: true,//图例选择模式
        orient: "vertical"//图例布局方式
    },
    series: [
    {
        name: '室外温度',
        type: 'pie',
        clockWise: false, //顺时加载
        hoverAnimation: false, //鼠标移入变大
        radius: [180, 200],
        itemStyle: placeHolderStyle,
        label: {
            normal: {
                show: false,
            }
        },
        data: [{
        value: 28,
        itemStyle: {
            normal: {
                color: '#dc1439'
            }
        }
        }, 
        {
        value: total-28,
        itemStyle: {
            normal: {
                color: 'transparent'
            }
        }
    }]
    }, 
    {
        name: '室内温度设定点',
        type: 'pie',
        clockWise: false, //顺时加载
        hoverAnimation: false, //鼠标移入变大
        radius: [150, 170],
        itemStyle: placeHolderStyle,
        data: [{
        value: 26,
        itemStyle: {
            normal: {
                color: '#e6b600'
            }
        }
        }, 
        {
        value: total-26,
        itemStyle: {
            normal: {
                color: 'transparent'
            }
        }
    }]
    }, 
    {
        name: '室内温度',
        type: 'pie',
        clockWise: false, //顺时加载
        hoverAnimation: false, //鼠标移入变大
        radius: [120, 140],
        itemStyle: placeHolderStyle,
        data: [{
        value: 26,
        itemStyle: {
            normal: {
                color: '#053afe'
            }
        }
        }, 
        {
        value: total-26,
        itemStyle: {
            normal: {
                color: 'transparent'
            }
        }
    }]
    }]
};
myChart.setOption(option);
</script>

ECharts 是一个由百度开源的基于 JavaScript 的数据可视化库,广泛应用于前端数据分析表展示。它支持多种类型的表绘制,如折线、柱状饼图等,并且功能非常丰富,可以高度自定义。 当你想要在一个 ECharts 饼图上同时显示环形柱状的时候,实际上是在描述一种混合了 ECharts 中两种不同类型表的视觉效果。这种混合表通常通过创建多个 `series` 来实现,每个 `series` 对应不同的表类型并配置相应的样式,最终在同一个容器内渲染出所需的复合形。 下面是一个基本步骤来演示如何在 ECharts饼图基础上添加环形柱状元素: ### 步骤 1: 准备 JSON 数据 假设我们有以下的数据结构: ```json { "name": "饼图环形柱状", "type": "pie", "data": [ { "value": 10 }, { "value": 30 }, { "value": 50 } ], // 环形柱状部分 "series": [ { "type": "bar", "xAxisIndex": 1, "yAxisIndex": 1, "symbolSize": [4, 8], "emphasis": { "focus": "series" }, "data": [ { "value": 60 }, { "value": 80 }, { "value": 120 } ] } ] } ``` ### 步骤 2: 使用 ECharts 初始化并渲染 你需要引入 ECharts 的 JavaScript 文件以及其 CSS 文件到HTML页面中,然后初始化ECharts实例,并传入上述JSON数据: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ECharts Example</title> <!-- 引入 ECharts --> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.2.0/echarts.min.js"></script> <style> #main { width: 600px; height: 400px; } </style> </head> <body> <div id="main"></div> <script> var myChart = echarts.init(document.getElementById('main')); var option = { title: { text: '饼图环形柱状示例' }, tooltip: {}, legend: { data: ['饼图', '环形柱状'] }, series: [ { type: 'pie', radius: ['50%', '70%'], label: { normal: { position: 'inner' } }, emphasis: { label: { show: true, fontSize: '30', fontWeight: 'bold' } }, data: [ { value: 10, name: 'A' }, { value: 30, name: 'B' }, { value: 50, name: 'C' } ] }, // 环形柱状部分 { type: 'bar', xaxisIndex: 1, yaxisIndex: 1, symbolSize: function (val) { return val * 1.5 + 5; // 自定义函数生成动态大小 }, barCategoryGap: '8%', barMaxWidth: 20, data: [ { value: 60 }, { value: 80 }, { value: 120 } ] } ] }; myChart.setOption(option); </script> </body> </html> ``` ### 相关问题: 1. **如何调整表颜色和样式?** - 您可以在 `option` 对象中自定义系列的颜色、边框、填充等属性,如 `.color`, `.borderColor`, `.backgroundColor`。 2. **如何增加表间的交互性?** - ECharts 支持丰富的交互操作,例如鼠标悬停事件、点击事件、缩放和平移等,您可以通过设置 `tooltip`, `legend` 和 `interaction` 对象中的属性来自定义交互行为。 3. **如何适配不同设备和屏幕尺寸?** - ECharts 默认会根据浏览器窗口大小自适应渲染,您还可以通过设置 `responsiveOptions` 或修改CSS样式来进一步优化跨屏体验。 通过以上步骤和相关问题的回答,你可以更好地理解和实现 ECharts饼图上叠加显示环形柱状的功能,以及如何对其进行个性化定制和交互优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值