突出显示matplotlib中的点序列[重复]
Posted
技术标签:
【中文标题】突出显示matplotlib中的点序列[重复]【英文标题】:Highlight sequence of points in matplotlib [duplicate] 【发布时间】:2021-11-30 21:08:55 【问题描述】:我有一系列异常点,其结构为 [[10, 20], [23, 38], [45, 56]]。我想做的是尝试绘制它们以突出显示它们,如下图(从论文中提取):
有图书馆可以做吗?目前我正在逐点进行,但正如您从屏幕和代码中看到的那样,我只是根据异常的位置绘制不同颜色的时间序列。
fig = plt.figure(figsize=(25,5))
ax1=plt.subplot(121)
sns.lineplot(data=df['values'], ax=ax1) # plot normal time series plot
sns.lineplot(data=df['values'][(df['anomalies'] == True )], color='red', ax=ax1)
【问题讨论】:
【参考方案1】:你可以用plt.axvspan
做你想做的事:
import matplotlib.pyplot as plt
# create some dummy data
data = 'a': np.arange(50),
'c': np.random.randint(0, 50, 50),
'd': np.random.randn(50)
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100
# plot data
plt.scatter('a', 'b', c='c', s='d', data=data)
# draw highlighted areas
plt.axvspan(10, 15, color='red', alpha=0.5)
plt.axvspan(30, 35, color='red', alpha=0.5)
plt.axvspan(40, 42, color='green', alpha=0.5)
plt.show()
结果:
【讨论】:
以上是关于突出显示matplotlib中的点序列[重复]的主要内容,如果未能解决你的问题,请参考以下文章