>백엔드 개발 >파이썬 튜토리얼 >Python에서 Matplotlib 이미지에 레이블을 추가하는 방법

Python에서 Matplotlib 이미지에 레이블을 추가하는 방법

王林
王林앞으로
2023-05-12 12:52:064502검색

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는 수평 정렬을 나타냅니다. ha = 'center’表示垂直对齐方式居中,fontsize = 30表示字体大小为30,rotation = -25表示旋转的角度为-25度。c 设定颜色,alpha设定透明度。va表示水平对齐方式。

1. 示例

代码在图像中添加了两段文本,一段是“旅途中的宽~”的斜体水印,透明度为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, '%.2f' % b, ha = 'center', va = 'bottom', fontsize = 14)
plt.show()

Python에서 Matplotlib 이미지에 레이블을 추가하는 방법

二、添加注释 plt.annotate()

在上例代码的基础之上,添加注释。注释即对图像中某一位置的解释,可以用箭头来指向。

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

其语法中的常用参数如下

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

其中str即注释要使用的字符串,即注释文本;xy指被注释的坐标点;xytext指注释文本要写在的位置;xycoords是被注释的点的坐标系属性,即以什么样的方式描述该点的坐标。设置值默为"data",即用(x,y)坐标来描述。其他可以选择的设置值如下,其中figure指的是整个画布作为一个参考系。而axes则表示仅对于其中的一个axes对象区域。

Python에서 Matplotlib 이미지에 레이블을 추가하는 방법

arrowprops

1. 예시

코드는 이미지에 두 개의 텍스트를 추가합니다. 하나는 투명도 0.4의 "Wide on the Journey~" 기울임꼴 워터마크입니다.

Python에서 Matplotlib 이미지에 레이블을 추가하는 방법다른 섹션은 폴리라인의 각 꼭지점 근처에 당일 종가를 표시하는 것입니다.

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, '%.3f'% 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 이미지에 라벨을 추가하는 방법

2 . 댓글 추가 plt.annotate()

위 예제 코드를 기반으로 댓글을 추가합니다. 주석은 이미지의 특정 위치에 대한 설명으로, 화살표로 가리킬 수 있습니다.

주석을 추가하려면 plt.annotate() 메서드를 사용하세요

구문의 공통 매개변수는 다음과 같습니다Python에서 Matplotlib 이미지에 레이블을 추가하는 방법

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()

여기서 str는 사용할 문자열입니다 주석의 경우, 즉 주석 텍스트입니다. xytext는 주석 텍스트가 기록될 위치를 나타냅니다. 는 주석이 달린 포인트 시스템 속성의 좌표, 즉 포인트의 좌표를 기술하는 방법입니다. 설정 값은 기본적으로 (x, y) 좌표로 설명되는 "data"입니다. 기타 선택적 설정 값은 다음과 같으며, 여기서 그림은 전체 캔버스를 참조 시스템으로 참조합니다. 그리고 축은 축 객체 영역 중 하나만을 의미합니다.

Python에서 Matplotlib 이미지에 레이블을 추가하는 방법

Python에서 Matplotlib 이미지에 레이블을 추가하는 방법arrowprops 는 화살표의 속성을 설정하는 데 사용되는 사전입니다. 이 사전 외부에 작성된 매개변수는 주석 텍스트의 속성을 나타냅니다.

🎜사전에서 설정할 수 있는 값은 다음과 같습니다. 🎜🎜🎜🎜🎜 이러한 매개변수에 대한 추가 설명: 화살표의 전체 길이는 먼저 주석이 달린 지점의 위치 좌표와 주석의 위치 좌표에 의해 결정됩니다. 이 텍스트는 화살표 길이를 추가로 조정하기 위해 매개변수 arrowprops 축소 키를 조정하여 조정할 수 있습니다. 축소는 전체 길이(주석이 있는 지점의 위치 좌표에 의해 결정되는 길이)에 대한 단축된 화살표 길이의 백분율을 나타냅니다. 주석 텍스트의 위치 좌표). 축소가 설정되지 않은 경우 축소는 기본적으로 0, 즉 축소가 없습니다. 수축이 매우 크면(1에 가까움) 해당 효과는 단축이 없는 것과 같습니다. 🎜🎜1. 예시🎜🎜차트에 최저 가격대를 표시하는 것을 예로 들어보겠습니다. 목표 위치에 빨간색 화살표와 "최저가"라는 단어를 추가합니다. 🎜🎜주석 텍스트의 글꼴 설정과 같은 기타 매개변수, c 또는 color는 색상을 나타내고,fontsize는 글꼴 크기를 나타냅니다. 속성에 대해 자세히 알아보고 직접 사용해 보세요. 🎜rrreee🎜🎜🎜🎜다음은 추가된 주석 화살표의 너비가 3, 화살표의 머리 너비가 10, 길이가 20이고 0.05로 단축되었으며 화살표는 녹색이고 주석 글꼴은 다른 효과입니다. 빨간색입니다. 코드 예시는 다음과 같습니다: 🎜rrreee🎜🎜🎜

위 내용은 Python에서 Matplotlib 이미지에 레이블을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제