는 그리기 프로세스 중에 이미지의 지정된 좌표 위치에 텍스트를 추가하는 데 사용됩니다. 사용해야 할 것은 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()
在上例代码的基础之上,添加注释。注释即对图像中某一位置的解释,可以用箭头来指向。
添加注释使用的是plt.annotate()
方法
其语法中的常用参数如下
plt.annotate(str,xy,xytext,xycoords,arrowcoords)
其中str
即注释要使用的字符串,即注释文本;xy
指被注释的坐标点;xytext
指注释文本要写在的位置;xycoords
是被注释的点的坐标系属性,即以什么样的方式描述该点的坐标。设置值默为"data",即用(x,y)坐标来描述。其他可以选择的设置值如下,其中figure指的是整个画布作为一个参考系。而axes则表示仅对于其中的一个axes对象区域。
arrowprops
다른 섹션은 폴리라인의 각 꼭지점 근처에 당일 종가를 표시하는 것입니다.
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()
2 . 댓글 추가 plt.annotate()
위 예제 코드를 기반으로 댓글을 추가합니다. 주석은 이미지의 특정 위치에 대한 설명으로, 화살표로 가리킬 수 있습니다.
주석을 추가하려면 plt.annotate()
메서드를 사용하세요
구문의 공통 매개변수는 다음과 같습니다
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"입니다. 기타 선택적 설정 값은 다음과 같으며, 여기서 그림은 전체 캔버스를 참조 시스템으로 참조합니다. 그리고 축은 축 객체 영역 중 하나만을 의미합니다.
arrowprops
는 화살표의 속성을 설정하는 데 사용되는 사전입니다. 이 사전 외부에 작성된 매개변수는 주석 텍스트의 속성을 나타냅니다.
위 내용은 Python에서 Matplotlib 이미지에 레이블을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!