Python 如何像Plotly一样在Matplotlib中注释日期时间格式?

Python 如何像Plotly一样在Matplotlib中注释日期时间格式?,python,pandas,matplotlib,Python,Pandas,Matplotlib,如何像Plotly一样在Matplotlib中添加注释文本示例第一次锁定、第二次锁定 尝试使用 ax.annotate('1st Lockdown', ...) 参见以下是一个例子,如另一个答案所示: import matplotlib.pyplot as plt import pandas as pd dr = pd.date_range('02-01-2020', '07-01-2020', freq='1D') y = pd.Series(range(len(dr))) ** 2

如何像Plotly一样在Matplotlib中添加注释文本示例第一次锁定、第二次锁定

尝试使用

ax.annotate('1st Lockdown', ...)
参见

以下是一个例子,如另一个答案所示:

import matplotlib.pyplot as plt
import pandas as pd

dr = pd.date_range('02-01-2020', '07-01-2020', freq='1D')

y = pd.Series(range(len(dr))) ** 2

fig, ax = plt.subplots()
ax.plot(dr, y)

ax.annotate('1st Lockdown',
            xy=(dr[50], y[50]), #annotate the 50th data point; you could select this in a better way
            xycoords='data', #the xy we passed refers to the data
            xytext=(0, 100), #where we put the text relative to the xy
            textcoords='offset points', #what the xytext coordinates mean
            arrowprops=dict(arrowstyle="->"), #style of the arrow
            ha='center') #center the text horizontally

ax.annotate('2nd Lockdown',
            xy=(dr[100], y[100]), xycoords='data',
            xytext=(0, 100), textcoords='offset points',
            arrowprops=dict(arrowstyle="->"), ha='center')

有很多带有注释的选项,因此我希望这些选项与您想要做的匹配,并尝试遵循这些选项

注释似乎是在
matplotlib
中实现这一点的“聪明”方式;您也可以只使用
axvline
text
,但您可能需要添加额外的格式以使事情看起来更好:

import matplotlib.pyplot as plt
import pandas as pd

dr = pd.date_range('02-01-2020', '07-01-2020', freq='1D')

y = pd.Series(range(len(dr))) ** 2

fig, ax = plt.subplots()
ax.plot(dr, y)

ax.axvline(dr[50], ymin=0, ymax=.7, color='gray')
ax.text(dr[50], .7, '1st Lockdown', transform=ax.get_xaxis_transform(), color='gray')

我想针对2020-03-26等日期添加第一次锁定、第二次锁定。如何做到这一点