我想知道是否可以在时间序列图中将标签添加到Y轴值的峰值。
尤其是当Y值大于1200时,我想在峰上添加Date
标签。
这是我创建情节的方式:
df[["DATE","DEPARTURE_DELAY_MIN"]].set_index('DATE').plot(figsize=(20,10))
_ = plt.xlabel("Date")
_ = plt.ylabel("Daily delay (minutes)")
答案 0 :(得分:1)
这是一个简短的示例,可以帮助您入门:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# Generate repeatable results
np.random.seed(0)
# Generate a bunch of noisy looking data and shuffle it
data = np.append(np.random.normal(200, 100, 990), np.random.normal(1200, 300, 10))
np.random.shuffle(data)
# Make the dataframe
df = pd.DataFrame({'Date': np.arange(1000), 'data_values': data})
df['over_value'] = df['data_values'] > 1200
# Create a plot
f, ax = plt.subplots()
df.plot(x='Date', y='data_values', ax=ax, legend=None)
# Iterate through the relevant rows and annotate
for _, row in df.query('over_value').iterrows():
ax.annotate(int(row['data_values']),
xy=(row['Date'], row['data_values']))
plt.show()