如何在 Matplotlib 中製作散點圖的圖例

Suraj Joshi 2023年1月30日
  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

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

相關文章 - Matplotlib Scatter Plot

相關文章 - Matplotlib Legend