How to display “%” sign on mouse hover in Pie-Char

2020-03-30 01:26发布

I am drawing graph on UI using ChartJS 2.0. And I am able to render a Pie Chart. But I want the mouse-hover to show the data along with a "%" sign. How can I append % So if on mouse hover I am getting Rented: 93 I would like to see Rented: 93 %. Kindly guide me.

Below is what I have now:

var sixthSubViewModel = Backbone.View.extend({
        template: _.template($('#myChart6-template').html()),
        render: function() {
          $(this.el).html(this.template());
          var ctx = this.$el.find('#pieChart')[0];
          var data = {
            datasets: [{
              data: this.model.attributes.currMonthOccAvailVac,
              backgroundColor: [
                "#455C73",
                "#BDC3C7",
                "#26B99A",
              ],
              label: 'My dataset' // for legend
            }],
            labels: [
              "Rented",
              "Vacant",
              "Unavailable",
            ]
          };
            var pieChart = new Chart(ctx, {
              type: 'pie',
              data: data
            });
        },
        initialize: function(){
            this.render();
        }   
    });

Understanding: I understand that currently hover takes the label and adds a colon and then adds data to it. So if label = Rented, Data = 93 I will see something like Rented: 93 on mouse-hover. How can I change text of mouse-hover to display Rented: 93%. Below is the image of what I have till now on mouse-hover.

enter image description here

I understand that I need to add one "options" in the pie chart. But I am not sure how to do that. Please help me.

1条回答
冷血范
2楼-- · 2020-03-30 02:15

You can edit what is displayed in your tooltip with the callbacks.label method in your chart options, and then simply add a "%" to the default string using :

  • tooltipItems -- See documentation for more information (scroll up a bit to "Tooltip Item Interface")
  • data -- Where the datasets and labels are stored.

var ctx = document.getElementById("canvas");
var data = {
    datasets: [{
        data: [93, 4, 3],
        backgroundColor: [
            "#455C73",
            "#BDC3C7",
            "#26B99A",
        ],
        label: 'My dataset' // for legend
    }],
    labels: [
        "Rented",
        "Vacant",
        "Unavailable",
    ]
};
var pieChart = new Chart(ctx, {
    type: 'pie',
    data: data,
    options: {
        tooltips: {
            callbacks: {
                label: function(tooltipItems, data) {
                    return data.labels[tooltipItems.index] + 
                    " : " + 
                    data.datasets[tooltipItems.datasetIndex].data[tooltipItems.index] +
                    ' %';
                }
            }
        }
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.min.js"></script>
<canvas id="canvas" height="150"></canvas>

查看更多
登录 后发表回答