使用谷歌图表在圆环饼图中心显示总数?

Has*_*san 2 google-visualization

我是angularjs和谷歌排行榜的新手我现在想做一个饼图我想要跟随:

1- display total components inside the centre of the pie charts.
2- display pieSliceText outer side of the pie slice
Run Code Online (Sandbox Code Playgroud)

你可以看到这就是我想要的:在此输入图像描述

怎样才能完成我的示例代码:

<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['corechart']}]}">                    </script>
<div id="piechart" style="width: 900px; height: 500px;"></div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

google.setOnLoadCallback(drawChart);
function drawChart() {

    var data = google.visualization.arrayToDataTable([
        ['Task', 'Hours per Day'],
        ['Work',     11],
        ['Eat',      2],
        ['Commute',  2],
        ['Watch TV', 2],
        ['Sleep',    7]
    ]);

    var options = {     
        height: 360,
        width: 360,
        pieHole: 0.5,
        showLables: 'true',
        pieSliceText: 'value',
        pieSliceTextStyle: {
            color: 'white',
            fontSize:18
        },
        legend: {
            position: 'right',
            alignment: 'center'
        },
        chartArea: { 
            left: 10, 
            top: 10, 
            width: '130%', 
            height: '65%'
        },
        tooltip: {
            trigger:'none'
        }
    };

    var chart = new google.visualization.PieChart(document.getElementById('piechart'));

    chart.draw(data, options);
}
Run Code Online (Sandbox Code Playgroud)

Kev*_*own 5

好吧,试试这个http://jsfiddle.net/L1tct3Lv/3/ ......它是一个快速的黑客,但你可以通过计算基于大小等的位置来大大改善它.

google.setOnLoadCallback(drawChart);

<!-- This generates the google chart -->
function drawChart() {
var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Work',     11],
    ['Eat',      2],
    ['Commute',  2],
    ['Watch TV', 2],
    ['Sleep',    7]
]);

var options = {     
    height: 360,
    width: 360,
    pieHole: 0.8,
    showLables: 'true',
    pieSliceText: 'value',
    pieSliceTextStyle: {
        color: 'white',
        fontSize:18
    },
    legend: {
        position: 'right',
        alignment: 'center'
    },
    chartArea: { 
        left: 10, 
        top: 10, 
        width: '130%', 
        height: '65%'
    },
    tooltip: {
        trigger:'none'
    }
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
jQuery('#cnt').text(data.Gf.length);
chart.draw(data, options);
Run Code Online (Sandbox Code Playgroud)

}

设置一些像这样的叠加:

<div id="JSFiddle">
<div id="chart_div"></div>
<div id="cnt" class="overlay"></div>
<div class="overlay-label">total components</div>
</div>
Run Code Online (Sandbox Code Playgroud)

有了这个css:

#JSFiddle {
position: relative;
}

.overlay {
display:block;
width:240px;
height:240px;
text-align:center;
vertical-align: middle;
position: absolute;
top: 0px;  /* chartArea top  */
left: 0px; /* chartArea left */
font-size: 80px;
margin-top: 60px;
}
.overlay-label{
    display:block;
width:240px;
height:240px;
text-align:center;
vertical-align: middle;
position: absolute;
top: 0px;  /* chartArea top  */
left: 0px; /* chartArea left */
margin-top: 140px;
font-size: 20px;
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述