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
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")