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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users