在 python 中向时间序列图添加水平限制线

add horizontal limit line to time series plot in python

我想为温度时间序列图添加水平上下限线。假设上限线为 30,下限线为 10。

df3.plot(x="Date", y=["Temp.PM", "Temp.AM"],figsize=(20,8))

plt.plot(df3['Date'], df3[["Temp.PM", "Temp.AM"]])
plt.axhline(30, color='r')
plt.axhline(10, color='b')
plt.show()

我认为这个解决方案可以帮助你

import matplotlib.pyplot as plt
%matplotlib inline

df3.plot(x="Date", y=["Temp.PM", "Temp.AM"],figsize=(20,8))
plt.axhline(30)
plt.axhline(10)

下面是一些开始和试验的代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

dates = pd.date_range('20190822', '20191020', freq='D')
df3 = pd.DataFrame({'Date': dates,
                    'Temp.AM': np.random.normal(22.5, 2, len(dates)),
                    'Temp.PM': np.random.normal(27.5, 2, len(dates))})
df3.plot(x='Date', y=['Temp.PM', 'Temp.AM'], color=['dodgerblue','coral'], figsize=(20, 8))

min_temp = df3['Temp.AM'].min()
max_temp = df3['Temp.PM'].max()
plt.axhline(min_temp, c='coral', ls='--')
plt.axhline(max_temp, c='dodgerblue', ls='--')
plt.text(df3['Date'][0], min_temp, f'\nMin: {min_temp:.1f}°C', ha='left', va='center', c='coral')
plt.text(df3['Date'][0], max_temp, f'Max: {max_temp:.1f}°C\n', ha='left', va='center', c='dodgerblue')
plt.show()