在matplotlib中为曲线创建逻辑上的阴影区域
为了在matplotlib中为曲线创建逻辑上的阴影区域,可以采取以下步骤。
步骤
- 设置图形大小,并调整子图之间和周围的填充。
-
使用numpy创建t、s1和s2数据点。
-
创建一个图形和一组子图。
-
绘制t和s1数据点;在轴上添加一条水平线。
-
创建一个跨越yrange的水平条形集合,其中包含一系列xranges。
-
向轴的集合中添加‘~.Collection’;返回集合。
-
使用Show()方法来显示图形。
示例
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.collections as collections
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
t = np.arange(0.0, 2, 0.01)
s1 = np.sin(2 * np.pi * t)
s2 = 1.2 * np.sin(4 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s1, color='black')
ax.axhline(0, color='black', lw=2)
collection = collections.BrokenBarHCollection.span_where(t, ymin=0, ymax=1,
where=s1 > 0, facecolor='green', alpha=0.5
)
ax.add_collection(collection)
collection = collections.BrokenBarHCollection.span_where( t, ymin=-1, ymax=0,
where=s1 < 0, facecolor='red', alpha=0.5
)
ax.add_collection(collection)
plt.show()
输出
它将产生以下输出−