欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+Matplotlib實(shí)現(xiàn)給圖像添加文本標(biāo)簽與注釋

 更新時(shí)間:2022年04月11日 09:29:32   作者:侯小啾  
這篇文章主要為大家分享一下如何使用python+matplotlib給繪制的圖像添加文本標(biāo)簽與注釋。文中的示例代碼講解詳細(xì),感興趣的可以了解一下

1.添加文本標(biāo)簽 plt.text()

用于在繪圖過程中,在圖像上指定坐標(biāo)的位置添加文本。需要用到的是plt.text()方法。 

其主要的參數(shù)有三個(gè):

plt.text(x, y, s)

其中x,y表示傳入點(diǎn)的x和y軸坐標(biāo)。s表示字符串。

需要注意的是,這里的坐標(biāo),如果設(shè)定有xticks、yticks標(biāo)簽,則指的不是標(biāo)簽,而是繪圖時(shí)x、軸的原始值。

因?yàn)閰?shù)過多,不再一一解釋,根據(jù)代碼學(xué)習(xí)其用法。

ha='center’表示垂直對(duì)齊方式居中,fontsize=30表示字體大小為30,rotation=-25表示旋轉(zhuǎn)的角度為-25度。c設(shè)定顏色,alpha設(shè)定透明度。

va表示水平對(duì)齊方式。

下邊的代碼在圖像中添加了兩段文本,一段是“股市有風(fēng)險(xiǎn),投資需謹(jǐn)慎”的斜體水印,透明度為0.4。

另一段是在折線的每個(gè)折點(diǎn)附近標(biāo)出當(dāng)天收盤價(jià)。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = range(9)
y = [5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31]
c = 0.5 * (min(x) + max(x))
d = min(y) + 0.3 * (max(y)-min(y))
# 水印效果
plt.text(c, d, '股市有風(fēng)險(xiǎn),入市需謹(jǐn)慎', ha='center', fontsize=30, rotation=-25, c='gray', alpha=0.4)

plt.plot(x, y, label='股票A收盤價(jià)', c='r', ls='-.', marker='D', lw=2)
plt.xticks(x, [
	'2022-03-27', '2022-03-28', '2022-03-29', '2022-03-30',
	'2022-03-31', '2022-04-01', '2022-04-04', '2022-04-05',
	'2022-04-06'], rotation=45)
plt.title('某股票收盤價(jià)時(shí)序圖')
plt.xlabel('日期')
plt.ylabel('價(jià)格')
plt.grid(True)
plt.legend()

# 標(biāo)出每天的收盤價(jià)
for a, b in zip(x, y):
	plt.text(a, b+0.01, '%.1f'%b, ha='center', va='bottom', fontsize=9)
plt.show()

2. 添加注釋 plt.annotate()

在上例代碼的基礎(chǔ)之上,添加注釋。注釋即對(duì)圖像中某一位置的解釋,可以用箭頭來指向。

添加注釋使用的是plt.annotate()方法

其語法中的常用參數(shù)如下

plt.annotate(str,xy,xytext,xycoords,arrowcoords)

其中str即注釋要使用的字符串,即注釋文本

xy指被注釋的坐標(biāo)點(diǎn)

xytext指注釋文本要寫在的位置

xycoords是被注釋的點(diǎn)的坐標(biāo)系屬性,即以什么樣的方式描述該點(diǎn)的坐標(biāo)。設(shè)置值默認(rèn)為"data",即用(x,y)坐標(biāo)來描述。其他可以選擇的設(shè)置值如下,其中figure指的是整個(gè)畫布作為一個(gè)參考系。而axes則表示僅對(duì)于其中的一個(gè)axes對(duì)象區(qū)域。

設(shè)置值描述
data默認(rèn)值,表示被注釋點(diǎn)的(x,y)坐標(biāo)
figure points以繪圖區(qū)的左下角為坐標(biāo)原點(diǎn),單位是點(diǎn)數(shù)
figure pixels以繪圖區(qū)的左下角為坐標(biāo)原點(diǎn),單位是像素?cái)?shù)
figure fraction以繪圖區(qū)的左下角為坐標(biāo)原點(diǎn),單位是百分比
axes points以繪圖區(qū)的左下角為坐標(biāo)原點(diǎn),單位是點(diǎn)數(shù)
axes pixels以繪圖區(qū)的左下角為坐標(biāo)原點(diǎn),單位是像素?cái)?shù)
axes fraction以繪圖區(qū)的左下角為坐標(biāo)原點(diǎn),單位是百分比
polar不使用本地?cái)?shù)據(jù)坐標(biāo)系,使用極坐標(biāo)描述

arrowprops是一個(gè)字典,用來設(shè)置箭頭的屬性。寫在這個(gè)字典之外的參數(shù)都表示的是注釋文本的屬性。

字典內(nèi)可以設(shè)置的值有

設(shè)置值描述
width箭頭的寬度(非頭部)
headwidth箭頭頭部的寬度
headlength箭頭頭部的長度
facecolor箭頭的顏色
shrink箭頭兩端收縮的百分比(占總長)
?任何matplotlib.patches.FancyArrowPacth中的關(guān)鍵字

關(guān)于這些參數(shù)的進(jìn)一步解釋:其中箭頭的總長度先是通過被注釋點(diǎn)位置坐標(biāo) 與 注釋文本位置坐標(biāo) 所決定的,可以通過調(diào)節(jié)參數(shù)arrowprops中的shrink鍵來進(jìn)一步調(diào)節(jié)箭頭的長度,shrink表示將箭頭縮短的長度占總長度(被注釋點(diǎn)位置坐標(biāo) 與 注釋文本位置坐標(biāo) 決定的長度)的百分比。當(dāng)不設(shè)定shrink時(shí),shrink默認(rèn)為0,即不縮短。當(dāng)shrink很大,接近1時(shí),其效果等同于不縮短。

以標(biāo)出圖中的最低價(jià)的點(diǎn)為例。在目標(biāo)位置添加一個(gè)紅色的箭頭,及“最低價(jià)”三個(gè)字。

其他更多參數(shù),如關(guān)于設(shè)置注釋文本的字體的,c或color表示顏色,fontsize表示字體大小。更多屬性自行了解嘗試。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = range(9)
y = [5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31]
c = 0.5 * (min(x) + max(x))
d = min(y) + 0.3 * (max(y)-min(y))
# 仿水印效果
plt.text(c, d, '股市有風(fēng)險(xiǎn),入市須謹(jǐn)慎', ha='center', fontsize=30, rotation=-25, c='gray', alpha=0.4)
plt.plot(x, y, label='股票A收盤價(jià)', c='r', ls='-.', marker='D', lw=2)
# plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], label='股票B收盤價(jià)', c='g', ls=':', marker='H', lw=4)
plt.xticks(x, [
?? ?'2022-03-27', '2022-03-28', '2022-03-29', '2022-03-30',
?? ?'2022-03-31', '2022-04-01', '2022-04-04', '2022-04-05',
?? ?'2022-04-06'], rotation=45)
plt.title('某股票收盤價(jià)時(shí)序圖')
plt.xlabel('日期')
plt.ylabel('價(jià)格')
plt.grid(True)
plt.legend()

# 標(biāo)出每天的收盤價(jià)
for a, b in zip(x, y):
?? ?plt.text(a, b+0.01, '%.1f'%b, ha='center', va='bottom', fontsize=9)

# 添加注釋
plt.annotate('最低價(jià)', (x[y.index(min(y))],min(y)), (x[y.index(min(y))] + 0.5, min(y)), xycoords='data',
?? ??? ??? ? arrowprops=dict(facecolor='r', shrink=0.1), c='r',fontsize=15)
plt.show()

下邊換一種效果呈現(xiàn),將提示語“股市有風(fēng)險(xiǎn),入市需謹(jǐn)慎”字體調(diào)大到50,不透明。添加的注釋箭頭寬度為3,箭頭的頭部寬度為10,長度為20,縮短0.05,且箭頭為綠色,注釋字體為紅色。代碼示例如下:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = range(9)
y = [5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31]
c = 0.5 * (min(x) + max(x))
d = min(y) + 0.3 * (max(y)-min(y))
plt.plot(x, y, label='股票A收盤價(jià)', c='k', ls='-.', marker='D', lw=2)
plt.xticks(x, [
?? ?'2022-03-27', '2022-03-28', '2022-03-29', '2022-03-30',
?? ?'2022-03-31', '2022-04-01', '2022-04-04', '2022-04-05',
?? ?'2022-04-06'], rotation=45)
plt.title('某股票收盤價(jià)時(shí)序圖')
plt.xlabel('日期')
plt.ylabel('價(jià)格')
plt.grid(True)
plt.legend()

# 標(biāo)出每天的收盤價(jià)
for a, b in zip(x, y):
?? ?plt.text(a, b+0.01, '%.1f'%b, ha='center', va='bottom', fontsize=9)

plt.text(c, d, '股市有風(fēng)險(xiǎn),入市須謹(jǐn)慎', ha='center', fontsize=50, rotation=-25, c='r')
plt.annotate('最低價(jià)', (x[y.index(min(y))], min(y)), (x[y.index(min(y))] + 2, min(y)), xycoords='data',
?? ??? ??? ? arrowprops=dict(width=3,headwidth=10,headlength=20, facecolor='g',shrink=0.05), c='r',fontsize=20)
plt.show()

到此這篇關(guān)于Python+Matplotlib實(shí)現(xiàn)給圖像添加文本標(biāo)簽與注釋的文章就介紹到這了,更多相關(guān)Python Matplotlib圖像添加標(biāo)簽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python通過tcp發(fā)送xml報(bào)文的方法

    python通過tcp發(fā)送xml報(bào)文的方法

    今天小編就為大家分享一篇python通過tcp發(fā)送xml報(bào)文的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python Flask-web表單使用詳解

    Python Flask-web表單使用詳解

    這篇文章主要為大家詳細(xì)介紹了Python Flask-web表單的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Python3.6.2調(diào)用ffmpeg的方法

    Python3.6.2調(diào)用ffmpeg的方法

    今天小編就為大家分享一篇Python3.6.2調(diào)用ffmpeg的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 如何在Python?中獲取單成員集合中的唯一元素

    如何在Python?中獲取單成員集合中的唯一元素

    這篇文章主要介紹了如何在Python?中獲取單成員集合中的唯一元素,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 一篇不錯(cuò)的Python入門教程

    一篇不錯(cuò)的Python入門教程

    一篇不錯(cuò)的Python入門教程...
    2007-02-02
  • 關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

    關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

    這篇文章主要介紹了關(guān)于matlab圖像濾波詳解(二維傅里葉濾波),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Numpy之將矩陣?yán)上蛄康膶?shí)例

    Numpy之將矩陣?yán)上蛄康膶?shí)例

    今天小編就為大家分享一篇Numpy之將矩陣?yán)上蛄康膶?shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python之捕捉異常詳解

    Python之捕捉異常詳解

    這篇文章主要為大家介紹了Python的捕捉異常,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python插件virtualenv搭建虛擬環(huán)境

    Python插件virtualenv搭建虛擬環(huán)境

    這篇文章主要為大家詳細(xì)介紹了Python插件virtualenv搭建虛擬環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 如何正確理解python裝飾器

    如何正確理解python裝飾器

    裝飾器(Decorators)是 Python 的一個(gè)重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短
    2021-06-06

最新評(píng)論