代码之家  ›  专栏  ›  技术社区  ›  Felipe Oriani

如何用不同的颜色画一条线

  •  0
  • Felipe Oriani  · 技术社区  · 4 年前

    我制定了一个战略,在这个战略中 dataFrame (熊猫)代表 time series (x是一个 date y是一个 number ).我还有一系列的类,对这个时间序列的每个点进行分类。我想知道如何在matplotlib中绘制线(或点-散点),并使用我的类数组考虑每个点的颜色。对于示例:

    我的数据帧

    print(df)
    
    date          value
    2018-07-04    1.25
    2018-07-05    2.15
    2018-07-06    1.75
    2018-07-07    1.95
    ...
    
    
    print(classes)
    [0, 1, 2, 0, 1, 1, 2, 1, ... ]
    

    我试过使用 DataFrame.plot.line 但它仅限于一种颜色。我如何定制它(它可能是一个散点)来绘制像下面这样的图片?

    enter image description here

    非常感谢。

    0 回复  |  直到 4 年前
        1
  •  1
  •   Quang Hoang    4 年前

    通常的想法是将绘图划分为细颗粒线/点,然后进行绘图。对于散布:

    import seaborn as sns
    
    df['class'] = classes
    
    s = df.set_index(['date']).asfreq('T');
    s['value'] = s['value'].interpolate()
    s['class'] = s['class'].ffill().astype(int).astype('category')
    s = s.reset_index()
    
    
    sns.scatterplot(x='date',y='value',hue='class', data=s)
    

    对于线图, this tutorial 可能会有帮助。