Matplotlib axis control problem

Dick Crepeau rhc2 at twcny.rr.com
Tue Oct 16 19:19:08 EDT 2007


I would like to control the y axis of a plot.  The following code does 
exactly what I want it to!  On my linux computer it sets the y axis 
limits to 18.0 minimum, 58.0 maximum, plots some points on y=x, provides 
ticks at 20,30,40,50 and horizontal tick lines that intersect the 
plotted points.

All very good, but if I change the upper y axis limit to 54.0, 
(ax.set_ylim(18.0, 54.0)), it fails, plotting the ticks at some strange 
values.

Ultimately I want to uncomment the set scale to log and use this to 
label semi log plots that by default are only labeled on powers of 10.  
My data falls within one decade so I don't want the full 10-100 limits.

I'm rather new at matplotlib so if I'm making trivial errors please feel 
free to criticize.

Thanks
Dick C

from pylab import *
from matplotlib.ticker import MaxNLocator

x=[10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0]
y=x
figure(1)
ax=subplot(111)
ax.plot(array(x), array(y), 'x')
#ax.set_yscale('log')
ax.set_ylim(18.0, 58.0)
ax.yaxis.set_major_locator(MaxNLocator(5))
ax.set_yticklabels(('10', '20','30','40','50','60','70','80','90','100'))
ax.yaxis.grid(True, linestyle='-', which='major')
show()





More information about the Python-list mailing list