Table of Contents
1. Add text label plt.text()
2. Add comments plt.annotate()
Home Backend Development Python Tutorial How to add labels to Matplotlib images in Python

How to add labels to Matplotlib images in Python

May 12, 2023 pm 12:52 PM
python matplotlib

1. Add text label plt.text()

is used to add text at the specified coordinate position on the image during the drawing process. What needs to be used is the plt.text() method.

Its main parameters are three:

plt.text(x, y, s)
Copy after login

where x and y represent the x and y axis coordinates of the incoming point. s represents a string.

It should be noted that the coordinates here, if xticks and yticks labels are set, do not refer to the labels, but the original values ​​of the x and axes when drawing.

Because there are too many parameters, I will not explain them one by one. Learn their usage based on the code.

ha = 'center’ means the vertical alignment is centered, fontsize = 30 means the font size is 30, rotation = -25 means rotation The angle is -25 degrees. c Set the color, alpha set the transparency. va represents horizontal alignment.

1. Example

The code adds two pieces of text to the image, one is an italic watermark of "Wide on the Journey~" with an transparency of 0.4.

The other section is to mark the closing price of the day near each vertex of the polyline.

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()
Copy after login

How to add labels to Matplotlib images in Python

2. Add comments plt.annotate()

Based on the above example code, add comments. An annotation is an explanation of a certain location in the image, which can be pointed to with an arrow.

Add annotations using plt.annotate()method

The common parameters in its syntax are as follows

plt.annotate(str,xy,xytext,xycoords,arrowcoords)
Copy after login

wherestr is the string to be used in the comment, that is, the comment text; xy refers to the coordinate point being commented; xytext refers to the position where the comment text is to be written; xycoords It is the coordinate system attribute of the annotated point, that is, how to describe the coordinates of the point. The setting value defaults to "data", which is described by (x, y) coordinates. Other optional setting values ​​are as follows, where figure refers to the entire canvas as a reference system. And axes means only for one of the axes object areas.

How to add labels to Matplotlib images in Python

arrowprops is a dictionary used to set the properties of arrows. Parameters written outside this dictionary represent attributes of the annotation text.

The values ​​that can be set in the dictionary are:

How to add labels to Matplotlib images in Python

#Further explanation of these parameters: The total length of the arrow is first determined by the position coordinates of the annotated point and the annotation The length of the arrow is determined by the text position coordinates. You can further adjust the length of the arrow by adjusting the shrink key in the parameter arrowprops. shrink represents the percentage of the shortened length of the arrow to the total length (the length determined by the position coordinates of the annotated point and the annotation text position coordinates). . When shrink is not set, shrink defaults to 0, that is, no shortening. When shrink is very large, close to 1, its effect is equivalent to no shortening.

1. Example

Take marking the lowest price point on the chart as an example. Add a red arrow and the words "lowest price" at the target position.

Other parameters, such as setting the font of the annotation text, c or color represents the color, and fontsize represents the font size. Learn more about the properties and try them yourself.

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()
Copy after login

How to add labels to Matplotlib images in Python

The following is a different effect. The added annotation arrow width is 3, the head width of the arrow is 10, the length is 20, shortened by 0.05, and the arrow is green , the annotation font is red. The code example is as follows:

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()
Copy after login

How to add labels to Matplotlib images in Python

The above is the detailed content of How to add labels to Matplotlib images in Python. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to download deepseek Xiaomi How to download deepseek Xiaomi Feb 19, 2025 pm 05:27 PM

How to download deepseek Xiaomi

What are the advantages and disadvantages of templating? What are the advantages and disadvantages of templating? May 08, 2024 pm 03:51 PM

What are the advantages and disadvantages of templating?

Google AI announces Gemini 1.5 Pro and Gemma 2 for developers Google AI announces Gemini 1.5 Pro and Gemma 2 for developers Jul 01, 2024 am 07:22 AM

Google AI announces Gemini 1.5 Pro and Gemma 2 for developers

For only $250, Hugging Face's technical director teaches you how to fine-tune Llama 3 step by step For only $250, Hugging Face's technical director teaches you how to fine-tune Llama 3 step by step May 06, 2024 pm 03:52 PM

For only $250, Hugging Face's technical director teaches you how to fine-tune Llama 3 step by step

A complete guide to golang function debugging and analysis A complete guide to golang function debugging and analysis May 06, 2024 pm 02:00 PM

A complete guide to golang function debugging and analysis

Share several .NET open source AI and LLM related project frameworks Share several .NET open source AI and LLM related project frameworks May 06, 2024 pm 04:43 PM

Share several .NET open source AI and LLM related project frameworks

How do you ask him deepseek How do you ask him deepseek Feb 19, 2025 pm 04:42 PM

How do you ask him deepseek

How to save the evaluate function How to save the evaluate function May 07, 2024 am 01:09 AM

How to save the evaluate function

See all articles