如何在 matplotlib 的填充区域内添加文本

Fia*_*ill 4 python matplotlib

我有一个图表,其中我已填写了某个区域。我正在寻找向填充区域添加注释/标签,但不知道如何添加。请在下面找到我的代码:

import numpy as np
import matplotlib.pyplot as plt

X = np.linspace(0, 2 * np.pi, 100)
Ya = np.sin(X)
plt.plot(X, Ya)
plt.fill_between(X, Ya, 0,
                 where = (X >=3.00) & (Ya<= 0),
                 color = 'b',alpha=.1)
Run Code Online (Sandbox Code Playgroud)

图表示例

我想为蓝色填充的部分添加注释。任何帮助将不胜感激!

Joh*_*anC 6

您可以抓取 的输出fill_between,获取其边界框并使用其中心来定位文本:


import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
X = np.linspace(0, 2 * np.pi, 100)
Ya = np.sin(X)
ax.plot(X, Ya)
filled_poly = ax.fill_between(X, Ya, 0,
                              where=(X >= 3.00) & (Ya <= 0),
                              color='b', alpha=.1)
(x0, y0), (x1, y1) = filled_poly.get_paths()[0].get_extents().get_points()

ax.text((x0 + x1) / 2, (y0 + y1) / 2, "Filled\npolygon", ha='center', va='center', fontsize=16, color='crimson')
plt.show()
Run Code Online (Sandbox Code Playgroud)

使用边界框的中心来定位文本