用Echarts绘制饼图-----标准饼图

1,172 阅读2分钟

饼图(Pie)的核心思想是分解,适用于对比几个数据在其形成的总和中所占的百分比。 整个饼代表总和,每一个数用一个扇形表示。为了更直观地查看影响健康寿命的各类因素数据、某高校的专业与人数分布数据,需要在ECharts中绘制不同的饼图进行展示,如标准饼图、圆环图、嵌套饼图和南丁格尔玫瑰图等。

标准饼图是以一个完整的圆来表示数据对象的全体,其中扇形面积表示各个组成部分。饼图常用于描述百分比构成,其中每一个扇形代表一个数据所占的比例。下面以一个实例说明标准饼图的绘制方法。 世界卫生组织(WHO)在一份统计调查报告中指出:在影响健康寿命的各类因素中,生活方式(饮食、运动和生活习惯)占60%,遗传因素占15%,社会因素占10%,医疗条件占8%,气候环境占7%。因此,健康寿命60%取决于自己。利用影响健康寿命的各类因素数据绘制标准饼图,如图2-20所示。需要注意,该饼图在不同版本的ECharts中运行,会有一些细微的差别

image.png

绘制饼图最主要的参数有以下几个。 (1)center表示圆心坐标,它可以是像素点表示的绝对值,也可以是数组类型。默认值为['50%','50%']。百分比计算时按照公式min(width,height)50%进行计算,其中的width和height分别表示div中所设置的宽度和高度。 (2)radius表示半径,它可以是像素点表示的绝对值,也可以是数组类型。默认值为[0, '75%'],支持绝对值(px)和百分比。百分比计算时按照公式min(width,height)/275%进行计算,其中的width和height分别表示div中所设置的宽度和高度。如果用形如[内半径,外半径]数组表示的话,那么可以绘制一个环形图;如果内半径为0,则可绘制一个标准的饼图。 (3)clockWise表示饼图中各个数据项(item)是否按照顺时针顺序显示,它是一个布尔类型,取值只有false和true。默认值为true。

作品展示如下:

image.png

源代码如下:

<html>
<head>
    <meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
 
        myChart.setOption({
            series : [
                {
                    name: '访问来源',
                    type: 'pie',    // 设置图表类型为饼图
                    radius: '55%',  // 饼图的半径,外半径为可视区尺寸(容器高宽中较小一项)的 55% 长度。
                    data:[          // 数据数组,name 为数据项名称,value 为数据项值
                        {value:235, name:'视频广告'},
                        {value:274, name:'联盟广告'},
                        {value:310, name:'邮件营销'},
                        {value:335, name:'直接访问'},
                        {value:400, name:'搜索引擎'}
                    ]
                }
            ]
        })
    </script>
</body>
</html>