Python集xticks(希望它是0:00-1:00,1:00-2:00,…)

Python集xticks(希望它是0:00-1:00,1:00-2:00,…),python,datetime,matplotlib,Python,Datetime,Matplotlib,我想将绘图的x记号设置为0:00-1:00,1:00-2:00,…23:00-0:00,而不是原来的0,1,2,…,23 所以我用了: plt.xticks(['0:00-1:00', '1:00-2:00', '2:00-3:00', '3:00-4:00', '4:00-5:00', '5:00-6:00', '6:00-7:00', '7:00-8:00', '8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00

我想将绘图的x记号设置为
0:00-1:00
1:00-2:00
,…
23:00-0:00
,而不是原来的
0,1,2,…,23

所以我用了:

plt.xticks(['0:00-1:00', '1:00-2:00', '2:00-3:00', '3:00-4:00', '4:00-5:00', '5:00-6:00', '6:00-7:00', '7:00-8:00',
            '8:00-9:00', '9:00-10:00', '10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00',
            '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00', '19:00-20:00', '20:00-21:00', '21:00-22:00',
            '22:00-23:00', '23:00-24:00'])
但我有一个错误:

ValueError: invalid literal for float(): 9:00-10:00

那么我怎样才能实现我的目标呢?有什么建议吗

代码不起作用的原因是您直接在
xticks
中使用字符串。您应该创建一个列表(在我的示例中是
labels
),然后将其作为参数分配给
xticks

示例代码

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,5)
y = np.sin(x)

labels = ['0:00-1:00', '1:00-2:00', '2:00-3:00', '3:00-4:00', '4:00-5:00'] # My manual xticks

plt.scatter(x,y)
plt.xticks(x,labels') # Here we assign it to xticks 
                      # Rotate them using "rotation='vertical'"
plt.show()

非常感谢您的快速回答!这真的解决了我的问题!:)很抱歉,我没有足够的声誉这么做,尽管我很乐意。我刚刚开始使用stackoverflow:p