# In[1]
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
%matplotlib inline
import numpy as np
plt.legend
command, which automatically creates a legend for any labeled plot elements.# In[2]
x=np.linspace(0,10,1000)
fig,ax=plt.subplots()
ax.plot(x,np.sin(x),'-b',label='Sine')
ax.plot(x,np.cos(x),'--r',label='Cosine')
ax.axis('equal')
leg=ax.legend()
# In[3]
ax.legend(loc='upper left',frameon=True)
fig
ncol
command to specify the number of columns in the legend.# In[4]
ax.legend(loc='lower center',ncol=2)
fig
# In[5]
ax.legend(frameon=True,fancybox=True,framealpha=1,
shadow=True,borderpad=1)
fig
For more information on available legend options, refer to this url :
plt.legend documentation
plot
commands.plt.plot
is able to create multiple lines at once, and returns a list of created line instances.plt.legend
will tell it which to identify, along with the labels we'd like to specify.# In[6]
y=np.sin(x[:,np.newaxis] + np.pi * np.arange(0,2,0.5))
lines=plt.plot(x,y)
# lines is a list of plt.Line2D instances
plt.legend(lines[:2],['first','second'],frameon=True);
# In[7]
plt.plot(x,y[:,0],label='first')
plt.plot(x,y[:,1],label='second')
plt.plot(x,y[:,2:])
plt.legend(frameon=True);
label
attribute set.legend
interface, it is only possible to create a single legend for the entire plot.plt.legend
or ax.legend
, it will simply override the first one.Artist
is the base class Matplotlib uses for visual attributes) from scratch, and then using the lower-level ax.add_artist
method to manually add the second artist to the plot.# In[8]
fig,ax=plt.subplots()
lines=[]
styles=['-','--','-.',':']
x=np.linspace(0,10,1000)
for i in range(4):
lines += ax.plot(x,np.sin(x - i * np.pi / 2),styles[i],color='black')
ax.axis('equal')
# specify the lines and labels of the first legend
ax.legend(lines[:2],['line A','line B'],loc='upper right')
# create the second legend and add the artist manually
from matplotlib.legend import Legend
leg=Legend(ax,lines[:2],['line C','line D'],loc='lower right')
ax.add_artist(leg);
ax.legend
, you'll see that the function simply consists of some logic to create a suitable Legend
artist, which is then saved in the legend_
attribute and added to the figure when the plot is drawn.For more information about plt.subplots()
, refer to these urls :
1. plt.subplots() documentation
2. About subplots() in Matplotlib
3. Difference between subplot() and subplots()