Force integer axis labels on Matplotlib
To make a Matlabplot figure axis have integer-only labels, use method like:
ax.yaxis.set_major_locator(MaxNLocator(integer=True))
# or
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
A complete standalone example follows:
import numpy as np
from matplotlib.figure import Figure
from matplotlib.ticker import MaxNLocator
x = np.arange(0.1,10.5,0.1) # arbitrary data
fg = Figure()
ax = fg.gca()
ax.plot(x)
ax.yaxis.set_major_locator(MaxNLocator(integer=True))
fg.savefig("example.png")
If too few ticks are displayed, as per the Matplotlib MaxNLocator, you must have “at least min_n_ticks integers…found within the view limits.” Set “MaxNLocator(nbins=5,integer=True)” or similar if the defaults aren’t forcing integer ticks.