使用 matplotlib 在 x 轴上突出显示特定日期
Highlight specific date in x-axis using matplotlib
我有一个要在 x 轴上绘制的日期列表:
x = ['20200116', '20200121', '20200325']
我使用以下代码进行绘图:
import matplotlib.pyplot as plt
import datetime
import matplotlib.dates as mdates
x = [datetime.datetime.strptime(date, '%Y%m%d').date() for date in x] ##convert string to dates
plt.fill_between(x, y1, 0, color='gray')
plt.margins(0)
plt.grid(alpha= 0.5)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%y')) ##changes date format
plt.xlim(xmin=min(x), xmax=max(x))
plt.gcf().autofmt_xdate()
这给了我下面的图表:
我的问题是:
如何在x标签中显示只原始日期x = ['20200116', '20200121', '20200325']
?那我就不需要他们高亮了。
如果以上不可能,那么如何用其他 x 标签显示原始日期 x = ['20200116', '20200121', '20200325']
并突出显示这 3 个日期?
最后加plt.xticks(x)
即可。
我有一个要在 x 轴上绘制的日期列表:
x = ['20200116', '20200121', '20200325']
我使用以下代码进行绘图:
import matplotlib.pyplot as plt
import datetime
import matplotlib.dates as mdates
x = [datetime.datetime.strptime(date, '%Y%m%d').date() for date in x] ##convert string to dates
plt.fill_between(x, y1, 0, color='gray')
plt.margins(0)
plt.grid(alpha= 0.5)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%y')) ##changes date format
plt.xlim(xmin=min(x), xmax=max(x))
plt.gcf().autofmt_xdate()
这给了我下面的图表:
我的问题是:
如何在x标签中显示只原始日期
x = ['20200116', '20200121', '20200325']
?那我就不需要他们高亮了。如果以上不可能,那么如何用其他 x 标签显示原始日期
x = ['20200116', '20200121', '20200325']
并突出显示这 3 个日期?
最后加plt.xticks(x)
即可。