突出显示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中的点序列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

plotly:单击图例中的点时突出显示(暗淡),而不是过滤

突出显示 matplotlib 散点图中的特定点

在 matplotlib 图中,我可以突出显示特定的 x 值范围吗?

仅具有突出显示值的 matplotlib 条形图

VBA突出显示列中的重复项

使用 Matplotlib 如何在最终图中突出显示一个点