91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python+Matplotlib怎么實現給圖像添加文本標簽與注釋

發布時間:2022-04-11 10:48:20 來源:億速云 閱讀:480 作者:iii 欄目:開發技術

這篇文章主要講解了“Python+Matplotlib怎么實現給圖像添加文本標簽與注釋”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python+Matplotlib怎么實現給圖像添加文本標簽與注釋”吧!

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

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

其主要的參數有三個:

plt.text(x, y, s)

其中x,y表示傳入點的x和y軸坐標。s表示字符串。

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

因為參數過多,不再一一解釋,根據代碼學習其用法。

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

va表示水平對齊方式。

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

另一段是在折線的每個折點附近標出當天收盤價。

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, '股市有風險,入市需謹慎', ha='center', fontsize=30, rotation=-25, c='gray', alpha=0.4)

plt.plot(x, y, label='股票A收盤價', 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('某股票收盤價時序圖')
plt.xlabel('日期')
plt.ylabel('價格')
plt.grid(True)
plt.legend()

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

Python+Matplotlib怎么實現給圖像添加文本標簽與注釋

2. 添加注釋 plt.annotate()

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

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

其語法中的常用參數如下

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

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

xy指被注釋的坐標點

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

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

設置值描述
data默認值,表示被注釋點的(x,y)坐標
figure points以繪圖區的左下角為坐標原點,單位是點數
figure pixels以繪圖區的左下角為坐標原點,單位是像素數
figure fraction以繪圖區的左下角為坐標原點,單位是百分比
axes points以繪圖區的左下角為坐標原點,單位是點數
axes pixels以繪圖區的左下角為坐標原點,單位是像素數
axes fraction以繪圖區的左下角為坐標原點,單位是百分比
polar不使用本地數據坐標系,使用極坐標描述

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

字典內可以設置的值有

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

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

以標出圖中的最低價的點為例。在目標位置添加一個紅色的箭頭,及“最低價”三個字。

其他更多參數,如關于設置注釋文本的字體的,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, '股市有風險,入市須謹慎', ha='center', fontsize=30, rotation=-25, c='gray', alpha=0.4)
plt.plot(x, y, label='股票A收盤價', 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收盤價', 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('某股票收盤價時序圖')
plt.xlabel('日期')
plt.ylabel('價格')
plt.grid(True)
plt.legend()

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

# 添加注釋
plt.annotate('最低價', (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()

Python+Matplotlib怎么實現給圖像添加文本標簽與注釋

下邊換一種效果呈現,將提示語“股市有風險,入市需謹慎”字體調大到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收盤價', 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('某股票收盤價時序圖')
plt.xlabel('日期')
plt.ylabel('價格')
plt.grid(True)
plt.legend()

# 標出每天的收盤價
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, '股市有風險,入市須謹慎', ha='center', fontsize=50, rotation=-25, c='r')
plt.annotate('最低價', (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()

Python+Matplotlib怎么實現給圖像添加文本標簽與注釋

感謝各位的閱讀,以上就是“Python+Matplotlib怎么實現給圖像添加文本標簽與注釋”的內容了,經過本文的學習后,相信大家對Python+Matplotlib怎么實現給圖像添加文本標簽與注釋這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵川县| 南华县| 微博| 萍乡市| 辉南县| 辽阳县| 延吉市| 临汾市| 皮山县| 宁波市| 资源县| 昌江| 伊金霍洛旗| 即墨市| 永德县| 湖州市| 新兴县| 云阳县| 德江县| 曲周县| 陵川县| 沛县| 内黄县| 松阳县| 通化县| 呼伦贝尔市| 绥芬河市| 十堰市| 道孚县| 邹平县| 安陆市| 淮北市| 凤翔县| 涟源市| 栾城县| 民丰县| 嘉善县| 隆昌县| 晋中市| 武夷山市| 邵武市|