使用 Dataframe.plot 函数在 pandas 时间序列上添加任意点

red*_*vil 2 time-series pandas

我一直在尝试使用 pandas dataframe 绘图函数绘制一些时间序列图。我试图在图上的某些任意点添加标记以显示异常点。我使用的代码:

df1 = pd.DataFrame({'Entropy Values' : MeanValues}, index=DateRange)
df1.plot(linestyle = '-')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我有一个需要添加标记的日期列表。例如:

Dates = ['15:45:00', '15:50:00', '15:55:00', '16:00:00']
Run Code Online (Sandbox Code Playgroud)

我查看了这个链接matplotlib: Setmarkers for individual point on a line。DF.plot 有类似的功能吗?

我真的很感谢你的帮助。谢谢!

Alb*_*oso 5

DataFrame.plot将它无法识别的所有关键字参数传递给matplotlib绘图方法。要将标记放置在图中的几个点上,您可以使用参数markevery。这是一个例子:

import pandas as pd

df = pd.DataFrame({'A': range(10), 'B': range(10)}).set_index('A')
df.plot(linestyle='-', markevery=[1, 5, 7, 8], marker='o', markerfacecolor='r')
Run Code Online (Sandbox Code Playgroud)

示例图

在你的情况下,你必须做类似的事情

df1.plot(linestyle='-', markevery=Dates, marker='o', markerfacecolor='r')
Run Code Online (Sandbox Code Playgroud)