Donut chart with a total label in the center

HTML

<link rel="stylesheet" href="http://www.webdetails.pt/ctools/charts/lib/tipsy.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.19/require.min.js"></script>
<script src="//webdetails.github.io/ccc/charts/lib/amd/require.config.js"></script>
<script src="//webdetails.github.io/ccc/charts/lib/q01-01.js"></script>
<div id="cccExample"></div>
<p>
See related example, that <a href="http://jsfiddle.net/duarteleao/x4hyjc0d/">preserves value labels</a>.
</p>

JavaScript

require(["ccc/pvc", "ccc/def"], function(pvc, def) {
    new pvc.PieChart({
        canvas: 'cccExample',
        width:  300,
        height: 300,

        animate:    true,
        selectable: true,
        hoverable:  true,

        valuesVisible: true,
        valuesLabelStyle: 'inside',
        valuesFont: '35px sans-serif',

        slice_innerRadiusEx: '55%',

        label_visible: function() { return !this.index; },
        label_left: null,
        label_top: null,
        label_textAngle: 0,
        label_textAlign: 'center',
        label_textBaseline: 'middle',
        label_strokeStyle: 'black',
        label_text: function() {
          var data = this.scene.group.parent;
          var valueDimName = this.panel.visualRoles.value
                 .firstDimensionName();
          var valueDim = data.dimensions(valueDimName);
          var total = valueDim.sumAbs();
          return valueDim.format(total);
        }
    })
    .setData(relational_04b, {crosstabMode: false})
    .render();
});