1.Echarts餅狀圖詳解及示例

       前言說明:因工作需要用到圖統計數據作爲展示,用到echarts3(你也可以考慮用阿里的AntV:http://antv.alipay.com/zh-cn/index.html,或者國外的一些圖形插件)。發現官方文檔只有根據屬性查詢,沒有根據圖的類型文檔說明。以下重點寫的例子主要是官方示例中沒有提及,但是我工作中用到了的示例。

1. 準備工作

       到echarts3(注意是echarts3,不是echarts2)官方下載echarts或者自定義下載,下載地址:http://echarts.baidu.com/download.html

2. 示例及說明
代碼中未說明的配置項,可以在官網查看。還有很多配置屬性,示例中並沒有使用到。配置文檔地址:http://echarts.baidu.com/option.html#tooltip.trigger

eg1效果圖:

這裏寫圖片描述

eg1:基本示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <!-- 引入 ECharts 文件 -->
    <script src="echarts.js"></script>
	<div id="pie1" style="width: 600px;height:400px;"></div>
	<script type="text/javascript">
    var myChart1 = echarts.init(document.getElementById('pie1'));
    option1 = {
	    title:{
            text:'按類型統計',
            top:'bottom',
            left:'center',
            textStyle:{
                fontSize: 14,
                fontWeight: '',
                color: '#333'
            },
        },//標題
        tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b}: {c} ({d}%)"/*formatter:function(val){   //讓series 中的文字進行換行
                 console.log(val);//查看val屬性,可根據裏邊屬性自定義內容
                 var content = var['name'];
                 return content;//返回可以含有html中標籤
             },*/ //自定義鼠標懸浮交互信息提示,鼠標放在餅狀圖上時觸發事件
        },//提示框,鼠標懸浮交互時的信息提示
        legend: {
            show: false,
            orient: 'vertical',
            x: 'left',
            data: ['50%-學生', '25%-老師', '25%-家長']
        },//圖例屬性,以餅狀圖爲例,用來說明餅狀圖每個扇區,data與下邊series中data相匹配
        graphic:{
            type:'text',
            left:'center',
            top:'center',
            style:{
                text:'用戶統計\n'+'100', //使用“+”可以使每行文字居中
                textAlign:'center',
                font:'italic bolder 16px cursive',
                fill:'#000',
                width:30,
                height:30
            }
        },//此例餅狀圖爲圓環中心文字顯示屬性,這是一個原生圖形元素組件,功能很多
        series: [
            {
                name:'用戶統計',//tooltip提示框中顯示內容
                type: 'pie',//圖形類型,如餅狀圖,柱狀圖等
                radius: ['35%', '65%'],//餅圖的半徑,數組的第一項是內半徑,第二項是外半徑。支持百分比,本例設置成環形圖。具體可以看文檔或改變其值試一試
                //roseType:'area',是否顯示成南丁格爾圖,默認false
                itemStyle: {
                    normal:{
                        label:{
                            show:true,
                            textStyle:{color:'#3c4858',fontSize:"18"},
                            formatter:function(val){   //讓series 中的文字進行換行
                                return val.name.split("-").join("\n");}
                        },//餅圖圖形上的文本標籤,可用於說明圖形的一些數據信息,比如值,名稱等。可以與itemStyle屬性同級,具體看文檔
                        labelLine:{
                            show:true,
                            lineStyle:{color:'#3c4858'}
                        }//線條顏色
                    },//基本樣式
                    emphasis: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)',//鼠標放在區域邊框顏色
                        textColor:'#000'
                    }//鼠標放在各個區域的樣式
                },
                data: [
                    {value: 50, name: '50%-學生'},
                    {value: 25, name: '25%-老師'},
                    {value: 25, name: '25%-家長'},
                ],//數據,數據中其他屬性,查閱文檔
                color: ['#51CEC6','#FFB703','#5FA0FA'],//各個區域顏色
            },//數組中一個{}元素,一個圖,以此可以做出環形圖
        ],//系列列表
    };
    myChart1.setOption(option1);
    </script>
</head>
</html>

eg2效果:

這裏寫圖片描述

eg2:內嵌圖及添加點擊事件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <!-- 引入 ECharts 文件 -->
    <script src="echarts.js"></script>
	<div id="pie1" style="width: 600px;height:400px;"></div>
	<script type="text/javascript">
    var myChart1 = echarts.init(document.getElementById('pie1'));
    option1 = {
		tooltip: {
			trigger: 'item',
			formatter: "{a} <br/>{b}: {c} ({d}%)"
		},
		series: [
			{
				name:'學段分類統計',
				type: 'pie',
				radius: [0, '35%'],
				label: {
					normal: {
						position: 'inner'
					}
				},//扇形區域內顯示文字
				data:[
					{value:25, name:'學生'},
					{value:35, name:'教師'},
					{value:45, name:'家長'}
				],
				color: ['#10EFE0','#EF42A4','#FF8F03']
			},
			{
				name:'角色分類統計',
				type: 'pie',
				radius: ['35%', '75%'],
				labelLine: {
					normal: {
						show: true,
					}
				},
				data:[
					{ value: 10, name: '學生(小學)' },
					{ value: 10, name: '學生(初中)' },
					{ value: 5, name: '學生(高中)' },
					{ value: 15, name: '教師(小學)' },
					{ value: 15, name: '教師(初中)' },
					{ value: 5, name: '教師(高中)' },
					{ value: 20, name: '家長(小學)' },
					{ value: 10, name: '家長(初中)' },
					{ value: 15, name: '家長(高中)' },

				],
				color:['#51CEC6','#6AE2D9','#96F5EF','#EF87C2','#F79DD0','#FFC8E7','#FFB703','#FFCD50','#FFE296']
			},

		],

	};
    myChart1.setOption(option1);
	
	//添加點擊事件,可以點擊每個區域,其中params爲每個區相關屬性,可以根據該屬性寫各種事件
	myChart1.on('click', function(params){
		console.log(params);
	});
    </script>
</head>
</html>

3. 未能實現的一些圖
     本人研究一段時間,發現餅狀圖有些功能未能實現。echarts3對分割後每一個扇區似乎沒有再分割的屬性了(如下圖)。如果哪位大神研究出來了下圖示例,還煩請發一個demo給我,謝謝,互相學習。郵箱:[email protected]
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章