我有一个matplotlib图,值在y上,时间在x上。然而,xtick 标签的范围从 0 到 23,虽然正确,但我希望它们格式化为 0:00、1:00 等。
我从csv文件中读取数据并通过执行以下操作提取小时值:hour_counts = songs['hour'].value_counts().sort_index()
返回如下列表:
0 574
1 399
2 225
3 135
23 734
然后绘制一个图形,并通过执行以下操作显示 xtick:
ax = hour_counts.plot()
ax.set_xticks(hour_counts.index)
ax.set_xticklabels(hour_counts.index, rotation=45)
这将创建一个类似于 https://i.stack.imgur.com/5wdDK.jpg 的图形
我想格式化 xtick 使它们看起来像时间,0:00、1:00、2:00 一直到 23:00。
谢谢
至少对于您发布的情节,您可以尝试的一个简单易行的技巧如下
ticklabels = ['%s:00' %i for i in range(24)]
ax.set_xticklabels(ticklabels, rotation=45)
还可以根据需要使用format
来格式化刻度标签。