'Format y-axis as percent in plot.ly

How do I format the y-axis as percent in plot.ly?. in var layout I have the following settings for the y-axis:

   yaxis: {
            hoverformat: ",.0%"
          },

which changes the hover to percentages but the values printed on the y-axis still go from 0-1 instead of 0-100.

Any help is much appreciated.



Solution 1:[1]

In order to change the format of the y-axis you need to set tickformat, not hoverformat.

var trace1 = {
  x: [1, 2, 3, 4],
  y: [0.10, 0.15, 0.43, 0.17],
  type: 'scatter'
};

var trace2 = {
  x: [1, 2, 3, 4],
  y: [0.16, 0.5, 0.11, 0.9],
  type: 'scatter'
};

var layout = {
  yaxis: {
    tickformat: ',.0%',
    range: [0,1]
  }
}

var data = [trace1, trace2];
Plotly.newPlot('myDiv', data, layout);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myDiv" style="width: 480px; height: 400px;">

Solution 2:[2]

For others: if you are using Plotly Express or Cufflinks with Plotly, you can return the figure object and adjust the yaxis.tickformat with the following:

my_fig.layout.yaxis.tickformat = ',.0%'

As pointed out by @shrmn in the comments, substitute a different number for zero and that number of decimal places will be displayed.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Maximilian Peters
Solution 2 jason m