如何将x轴上的时间戳格式化为"%Y-%m-%d %H:%M"
。 ts
是时间戳列表以及如何在x轴上显示值:
" 2018-5-23 14:00"," 2018-5-23 14:15"和" 2018-5-23 14:30"。
我当前的图表显示:
23 14:00,23 14:05,23 14:10,23 14:15,23 14:20,23 14:25,23 14:30。
import datetime
import matplotlib.pyplot as plt
from matplotlib import style
style.use('fivethirtyeight')
ts = [datetime.datetime(2018, 5, 23, 14, 0), datetime.datetime(2018, 5, 23, 14, 15), datetime.datetime(2018, 5, 23, 14, 30)]
values =[3, 7, 6]
plt.plot(ts, values, 'o-')
plt.show()
答案 0 :(得分:0)
首先,您需要设置x刻度,以便只显示所需的值。这可以使用plt.xticks(tick_locations, tick_labels)
完成。
要以正确的格式获取日期,您需要指定DateFormatter
并将其应用于x轴。
您的代码如下:
import datetime
import matplotlib.pyplot as plt
from matplotlib import style
from matplotlib.dates import DateFormatter
style.use('fivethirtyeight')
ts = [datetime.datetime(2018, 5, 23, 14, 0), datetime.datetime(2018, 5, 23, 14, 15), datetime.datetime(2018, 5, 23, 14, 30)]
values =[3, 7, 6]
plt.plot(ts, values, 'o-')
plt.xticks(ts, ts) # set the x ticks to your dates
date_formatter = DateFormatter("%Y-%m-%d %H:%M") # choose desired date format
ax = plt.gca()
ax.xaxis.set_major_formatter(date_formatter)
plt.show()