Matplotlib 註釋

Salman Mehmood 2024年2月15日
Matplotlib 註釋

在本教程中,我們將瞭解如何在 Python 中使用帶有 Matplotlib 的 annotate() 方法向繪圖新增註釋。

在 Matplotlib 中使用 annotate() 方法的繪圖中新增註釋

繪圖註釋將註釋新增到圖表或文字中,以解釋圖表或文字中的該點。我們可以使用 annotate() 方法為繪圖新增註釋。

Matplotlib 的另一種方法稱為 text()。它還允許我們在繪圖中新增註釋,但與 annotate() 方法相比,text() 方法具有非常基本的功能。

annotate() 方法的語法。

annotate(s, xy, *args, **kwargs)
引數 描述
s 第一個引數是要新增到繪圖中的文字。
xy 接下來是接受元組並將採用浮點值的 xy 引數座標。你需要提及 x 座標和 y 座標,這是你要註釋點的點。
*args,**kwargs 這些關鍵字引數幫助我們更改文字屬性,如字型樣式、字型大小等。
xytext xytext 引數將為你提供要註釋的位置,因此這是可選引數。如果你不提及這一點,它將採用第二個 xy 引數作為文字的位置。
xycoords, textcoords 我們可以使用 xycoordstextcoords,它們採用 XY 和文字的座標系。我們可以通過這個引數來改變 XY 的座標系。

預設情況下,這個 annotate() 方法會將座標系作為"data"。如果我們想改變 textcoords 引數的座標系,那麼我們可以改變這個引數。
arrowprops 在文字和作為註釋點或位置的點之間新增一個箭頭。此引數將字典作為值,因此我們需要將其傳遞給鍵值對。

如果你不提及它不會在繪圖上新增任何箭頭,則它是可選的。此字典引數有幾個鍵,因此請從此處閱讀詳細文件。
annotation_clip annotation_clip 也是一個可選引數。它將採用布林值,當註釋點 xy 在軸區域之外時,它將告訴你是否要繪製註釋。
如果你傳遞它"True",當 xy 點在繪圖之外。如果它是"False",它將繪製。

程式碼:

import matplotlib.pyplot as plot

plot.plot([10, 20, 30, 40], marker="o")

plot.annotate("Points", (1, 20))
plot.show()

輸出:

在 matplotlib 中使用 annotate 方法

下一個示例使用 xytext*args 引數。

程式碼:

import matplotlib.pyplot as plot

plot.plot([10, 20, 30, 40], marker="o")

plot.annotate("Points", (1, 20), (0.5, 25), size=20, color="red")
plot.show()

輸出:

使用 xytext 引數和 args 引數註釋方法

我們可以使用 annotate() 方法的 arrowprops 屬性新增箭頭。

程式碼:

import matplotlib.pyplot as plot

plot.plot([10, 20, 30, 40], marker="o")

plot.annotate("Points", (1, 20), (0.5, 25), arrowprops={})
plot.show()

輸出:

使用 arrowprops 屬性註釋方法

我們可以使用 arrowstyle 鍵更改箭頭的樣式。

程式碼:

import matplotlib.pyplot as plot

plot.plot([10, 20, 30, 40], marker="o")

plot.annotate("Points", (1, 20), (0.5, 25), arrowprops={"arrowstyle": "<->"})
plot.show()

輸出:

使用箭頭樣式鍵更改箭​​頭樣式

我們也可以使用 width 鍵來增加箭頭的寬度,但是我們不能同時使用 width 和 arrowstyle 鍵。如果我們這樣做,那麼我們將得到一個錯誤。

當我們不使用鍵作為 arrowstyle 時,我們只能使用這個鍵。

程式碼:

import matplotlib.pyplot as plot

plot.plot([10, 20, 30, 40], marker="o")

plot.annotate("Points", (1, 20), (0.5, 25), arrowprops={"width": 10})
plot.show()

輸出:

使用箭頭道具增加箭頭寬度

當註釋的座標在軸之外時,我們可以使用 annotation_clip 屬性隱藏註釋,因此我們需要將布林值作為 "True" 傳遞給它,但我們希望看到註釋甚至註釋座標被放置在圖之外,所以我們通過它"False"

程式碼:

import matplotlib.pyplot as plot

plot.plot([10, 20, 30, 40], marker="o")

plot.annotate(
    "Points",
    (1, 20),
    (0.5, 45),
    arrowprops={"arrowstyle": "<->"},
    annotation_clip=False,
)
plot.show()

輸出:

使用 annotation_clip 屬性隱藏註釋

作者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn