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 |
我們可以使用 xycoords 和 textcoords ,它們採用 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()
輸出:
下一個示例使用 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()
輸出:
我們可以使用 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()
輸出:
我們可以使用 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()
輸出:
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