如何在 Matplotlib 中制作散点图的图例

Suraj Joshi 2023年1月30日 2020年11月7日
  1. 在 Maptlotlib 2D 散点图中添加图例
  2. 在 Matplotlib 3D 散点图上添加图例
如何在 Matplotlib 中制作散点图的图例

图例是对图中各种元素的简单描述。我们可以使用 matplotlib.pyplot.legend 函数来生成散点图的图例。

在 Maptlotlib 2D 散点图中添加图例

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

输出:

为二维散点图添加图例

我们在图中有两个单独的散点图:一个用 x 表示,另一个用 o 标记。我们在生成图例时给每个散点图分配 label 作为标签。然后,我们使用 legend() 函数在图中创建图例,最后使用 show() 方法显示整个图。

我们也可以直接将一个标签元组作为参数传递给 legend() 方法,并使用 legend() 方法的 loc 参数改变图例的位置。

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

输出:

将图例添加到指定位置的 2D 散点图

这个过程会创建一个带有两个散点图的图形,并在轴的边框的中左位置放置一个图例。

在 Matplotlib 3D 散点图上添加图例

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

输出:
为三维散点图添加图例

要为 3D 散点图创建图例,我们使用 plot() 方法而不是 scatter() 方法;这是因为 legend() 方法不支持 Axes3D 实例的 scatter() 方法返回的 Patch3DCollection

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相关文章 - Matplotlib Scatter Plot

相关文章 - Matplotlib Legend