python - matplotlib locator_params or set_major_locator not working -
i trying reduce number of axis ticks in subplots (each axis different values, can't set ticks manually), other answers such this or this don't work. syntax creating figure standard, follows:
fig = plt.figure(figsize=(7,9)) ax = fig.add_subplot(8,2,i+1) # plotting in larger loop, don't think there wrong loop, because else (axis limits, labels, plotting itself...) works fine.
and reduce number of yticks, tried
ax = plt.locator_params(nbins=4, axis='y')
which raised error typeerror: set_params() got unexpected keyword argument 'nbins'
and tried
ax.yaxis.set_major_locator(plt.maxnlocator(4))
which gave error attributeerror: 'nonetype' object has no attribute 'yaxis'
i don't understand why subplot considered nonetype. suspect core of problem, examples saw have same structure, i.e.
fig = plt.figure() ax = fig.add_subplot(111) ax.yaxis.set_major_locator(plt.maxnlocator(4))
and should work. why ax nonetype?
the problem line:
ax = plt.locator_params(nbins=4, axis='y')
locator_params
not return axes
instance (in fact doesn't return anything), on line reassigning ax
none
.
i think want change to:
ax.locator_params(nbins=4, axis='y')
and should work ok.
Comments
Post a Comment