我想使用matplotlib创建一个图,显示沿x轴的时间.下面的代码是一个完整的最小可行的例子
import random
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import dates as mdates
times = np.arange(0, 5000, 60)
x = [datetime.utcfromtimestamp(val) for val in times]
y = random.sample(range(1, 100), len(x))
formatter = mdates.DateFormatter("%H:%M")
locator = mdates.MinuteLocator(interval=10)
# locator = mdates.MinuteLocator(interval=10, byminute=10)
# locator = mdates.MinuteLocator(interval=10, byminute=[0,10,20,30,40,50])
plt.clf()
plt.gca().xaxis.set_major_formatter(formatter)
plt.gca().xaxis.set_major_locator(locator)
plt.plot(x, y)
plt.grid(True)
plt.xlabel("time [min]")
plt.ylabel("Random number")
plt.show()
与DateFormatter
一起创建以下轴标签:
然而,我希望每隔整整10分钟才进行一次勾选,即我希望在15:30、15:40、15:50等时间进行勾选,而不是从15:24开始.所以我试着
locator = mdates.MinuteLocator(interval=10, byminute=10)
这给了我一个错误
ValueError: Invalid rrule byxxx generates an empty set.
但是根据documentation,你也可以指定一个int值或一个int列表. 但即使try 使用int列表,
locator = mdates.MinuteLocator(interval=10, byminute=[0,10,20,30,40,50])
它仍然给出相同的错误!
那么,如何解决这个问题呢?