On 08/28/2010 06:40 PM, xyz wrote:
> Hello,
> If I use autoscale_view than:
> * plt.text appears outside x and y coordinates
> * and the coordinates starts do not from 0 whereas I use ax.set_xlim(0)
> and ax.set_ylim(0)
>
> What did I wrong?

The call to autoscale_view overrides the earlier calls to set_xlim and 
set_ylim. There is no built-in mechanism for autoscaling only the upper 
limit, and holding the lower limit fixed.  You could make such a 
mechanism by writing a custom Locator, but it may make more sense to 
calculate the upper limit directly in your code based on your data, and 
then use set_xlim and set_ylim to set both ends of each axis.

Eric

>
> from pylab import *
> import matplotlib.pyplot as plt
>
> x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
> 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
> y1 = [20, 24, 8, 4, 12, 22, 31, 25, 15, 28, 12, 27, 22, 22, 27, 14, 32,
> 28, 8, 17, 2, 8, 29, 13, 14, 20, 11, 28, 8]
> y2= [2, 32, 28, 1, 22, 11, 14, 27, 3, 31, 12, 20, 32, 24, 24, 16, 7, 10,
> 12, 11, 3, 32, 10, 20, 14, 14, 3, 25, 14]
> point_labels1 = ['A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1',
> 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1',
> 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1', 'A=1']
> point_labels2 = ['B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1',
> 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1',
> 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1', 'B=1']
>
> fig = plt.figure()
> ax = fig.add_subplot(111)
>
> ax.set_title('The red point should be on the path')
>
> plt.plot(x, y1, 'bo', x, y2, 'go')
> ax.grid(True)
> ax.set_xlim(0.0)
> ax.set_ylim(0.0)
>
> fig.autofmt_xdate()
>
> plt.xticks(range(0, 40, 1))
>
> plt.yticks(range(0, 40, 1))
> plt.xlabel('Longitude')
> plt.ylabel('Latitude')
> plt.legend(('Model length', 'Data length'),
>              'best', shadow=True, fancybox=True)
>
> for i, label in enumerate(y1):
>     plt.text (x[i], y1[i]+0.2, label,
>               horizontalalignment='center' )
>
> for i, label in enumerate(y2):
>     plt.text (x[i], y2[i]+0.2, label,
>               horizontalalignment='center' )
>
>
> ax.autoscale_view()
> plt.savefig('test.png')
> plt.show()

------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to