Existe, en el estilo OO, otra forma de establecer las posiciones de las marcas principales (las vistas hasta ahora) y de las marcas secundarias (marcas que se muestran con un tamaño menor y sin etiqueta). Esta otra forma se basa en los métodos set_major_locator y set_minor_locator. Ambos métodos tienen como único argumento una valor de tipo "Locator". Para crear una variable de este tipo tenemos que importar la función MultipleLocator de la sublibrería matplotlib.ticker:
from matplotlib.ticker import MultipleLocator
xminor = MultipleLocator(1)
xmajor = MultipleLocator(7)
En el ejemplo anterior estamos creando dos "Locators" y asignándolos a dos variables, xminor y xmajor. Los valores entre paréntesis indican cada cuantos puntos se desea mostrar las marcas.
Ahora ya podríamos ejecutar los métodos comentados. Por ejemplo, si queremos que una gráfica muestre en el eje x las marcas principales cada 10 puntos y las marcas secundarias cada punto, podríamos hacerlo con el siguiente código:
Podemos observar que los métodos en cuestión se deben aplicar al objeto ax.xaxis que representa al eje x en el conjunto de ejes ax (o al objeto ax.yaxis si deseásemos configurar el eje y). Estos son los objetos "eje" (en singular) o "axis".
También observamos que las marcas principales son las únicas que tienen etiquetas asignadas: las secundarias solo se muestran usando una pequeña marca en el eje.
Suponiendo que hemos importado la función MultipleLocator, realicemos otro ejemplo configurando esta vez los dos ejes de forma que en el eje x las marcas principales se muestren cada 15 puntos y las secundarias cada 3, y que en el eje y las marcas principales se muestren cada 3 puntos, y las secundarias cada punto: