Chart.js v2: Как заставить всплывающие подсказки всегда появляться на круговой диаграмме?

я нашелпохожие вопросы в переполнении стека, но все они были рассмотрены один и два года назад. Теперь Chart.js появился в версии 2, и множество изменений в документации. Может ли кто-нибудь помочь мне показать пример круговой диаграммы с метками - или круговая диаграмма со всеми подсказками ее сегмента видна?

ОБНОВИТЬ

Благодаря @potatopeelings его ответ отлично работает для Chart.js v2.1.

Хотя я изначально спрашивал, как постоянно показывать всплывающие подсказки на круговой диаграмме, я нашел лучшее решение: показывать значения в виде меток в процентах! Теперь он включен для круговой диаграммы в Chart.js v2.1. В параметрах диаграммы:

animation: {
  duration: 0,
  onComplete: function () {
    var self = this,
        chartInstance = this.chart,
        ctx = chartInstance.ctx;

    ctx.font = '18px Arial';
    ctx.textAlign = "center";
    ctx.fillStyle = "#ffffff";

    Chart.helpers.each(self.data.datasets.forEach(function (dataset, datasetIndex) {
        var meta = self.getDatasetMeta(datasetIndex),
            total = 0, //total values to compute fraction
            labelxy = [],
            offset = Math.PI / 2, //start sector from top
            radius,
            centerx,
            centery, 
            lastend = 0; //prev arc's end line: starting with 0

        for (var val of dataset.data) { total += val; } 

        Chart.helpers.each(meta.data.forEach( function (element, index) {
            radius = 0.9 * element._model.outerRadius - element._model.innerRadius;
            centerx = element._model.x;
            centery = element._model.y;
            var thispart = dataset.data[index],
                arcsector = Math.PI * (2 * thispart / total);
            if (element.hasValue() && dataset.data[index] > 0) {
              labelxy.push(lastend + arcsector / 2 + Math.PI + offset);
            }
            else {
              labelxy.push(-1);
            }
            lastend += arcsector;
        }), self)

        var lradius = radius * 3 / 4;
        for (var idx in labelxy) {
          if (labelxy[idx] === -1) continue;
          var langle = labelxy[idx],
              dx = centerx + lradius * Math.cos(langle),
              dy = centery + lradius * Math.sin(langle),
              val = Math.round(dataset.data[idx] / total * 100);
          ctx.fillText(val + '%', dx, dy);
        }

    }), self);
  }
},

Ответы на вопрос(3)

Ваш ответ на вопрос