how to put legend outside plot in matplotlib code example

Example 1: matplotlib legend out of plot

ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.05),
          ncol=3, fancybox=True, shadow=True)

Example 2: ax.legend place legend outside plot

import numpy as np
import matplotlib.pyplot as plt

#Define arrays x, y1, y2, y3

fig = plt.figure()
ax = fig.add_axes((0.1,0.4,0.5,0.5))

ax.plot(x1,y1,linestyle='-',label='one')
ax.plot(x1,y2,linestyle='--',label='two')
ax.plot(x1,y3,linestyle='dotted',label='three')

ax.legend(bbox_to_anchor=(1.05,1.0),loc='best')

fig.savefig('Figure1.pdf')