put legend outside plot 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')

Example 3: pyplot legend outside figure

l1 = plt.legend(bbox_to_anchor=(1.04,1), borderaxespad=0)
l2 = plt.legend(bbox_to_anchor=(1.04,0), loc="lower left", borderaxespad=0)
l3 = plt.legend(bbox_to_anchor=(1.04,0.5), loc="center left", borderaxespad=0)
l4 = plt.legend(bbox_to_anchor=(0,1.02,1,0.2), loc="lower left",
                mode="expand", borderaxespad=0, ncol=3)
l5 = plt.legend(bbox_to_anchor=(1,0), loc="lower right", 
                bbox_transform=fig.transFigure, ncol=3)
l6 = plt.legend(bbox_to_anchor=(0.4,0.8), loc="upper right")