# Make the Legend of the Scatter Plot in Matplotlib

Legend is simply the description of various elements in a figure. We can generate a legend of scatter plot using the `matplotlib.pyplot.legend`

function.

## Add a Legend to the 2D Scatter Plot in Matplotlib

```
import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y1=[i**2 for i in x]
y2=[2*i+1 for i in x]
plt.scatter(x,y1,marker="x",color='r',label="x**2")
plt.scatter(x,y2,marker="o",color='b',label="2*x+1")
plt.legend()
plt.show()
```

Output:

We have two separate scatter plots in the figure: one represented by `x`

and another by the `o`

mark. We assign the `label`

to each scatter plot used as a tag while generating the legend. Then, we create the legend in the figure using the `legend()`

function and finally display the entire figure using the `show()`

method.

We can also directly pass a tuple of labels as an argument to the `legend()`

method and change the legend’s position using the `loc`

parameter of the `legend()`

method.

```
import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y1=[i**2 for i in x]
y2=[2*i+1 for i in x]
plt.scatter(x,y1,marker="x",color='r')
plt.scatter(x,y2,marker="o",color='b')
plt.legend(("x**2","2*x+1"),loc="center left")
plt.show()
```

Output:

This process creates a figure with two scatter plots and a legend placed at the `center left`

of the axes’ border-box.

## Add a Legend to the 3D Scatter Plot in Matplotlib

```
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[2,1,4,5,6]
z1=[i+j for (i,j) in zip(x,y)]
z2=[3*i-j for (i,j) in zip(x,y)]
axes = plt.subplot(111, projection='3d')
axes.plot(x,y,z1,"x",label="x+y")
axes.plot(x,y,z2,"o",label="3*x-y")
plt.legend(loc="upper left")
plt.show()
```

Output:

To create a legend for `3D`

scatter plot, we use the `plot()`

method instead of the `scatter()`

method; it’s because the `legend()`

method does not support `Patch3DCollection`

returned by the `scatter()`

method of the `Axes3D`

instance.