pythonmatplotlibformatterxticksyticks

How to format tick labels with kilo (K) and mega (M) suffixes


I would like to print values on axes not as 30000 or 7000000 but as 30K or 7M. It means to add K (kilo) suffix for x < 10^6 and M (mega) suffix for x >= 10^6. How can I do that?

Current code snippet:

ax = pylab.gca()
formatter = matplotlib.ticker.FormatStrFormatter('%.f')
ax.xaxis.set_major_formatter(formatter)

Solution

  • You will need to write your own function applies the suffixes for various conditions and use FuncFormatter instead of StrFormatter. This example should cover you.