使用matplotlib

时间:2018-05-24 09:04:38

标签: python matplotlib

如何将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()

enter image description here

1 个答案:

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

enter image description here