【问题标题】:Highlight sequence of points in matplotlib [duplicate]突出显示matplotlib中的点序列[重复]
【发布时间】: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)

【问题讨论】:

    标签: python matplotlib plot time-series


    【解决方案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()
    

    结果:

    【讨论】:

      猜你喜欢
      • 2016-11-25
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 2016-03-13
      • 2020-03-24
      • 1970-01-01
      相关资源
      最近更新 更多