如何在图上添加标签?

时间:2018-06-24 15:39:20

标签: python pandas matplotlib

我想知道是否可以在时间序列图中将标签添加到Y轴值的峰值。

enter image description here

尤其是当Y值大于1200时,我想在峰上添加Date标签。

这是我创建情节的方式:

df[["DATE","DEPARTURE_DELAY_MIN"]].set_index('DATE').plot(figsize=(20,10))
_ = plt.xlabel("Date")
_ = plt.ylabel("Daily delay (minutes)")

1 个答案:

答案 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()

enter image description here