[英]Show Matplotlib Xaxis labels only at half and full hour
我有一个matplotlib图表,其时间轴为x轴(时间戳由matplotlib.dates.date2num()
转换)。
我想显示一个带有标记的网格,标记每半个小时和整个小时,如下所示:10:00,10:30,11:00,......
要格式化标签间隔,我使用以下代码行:
import matplotlib.dates as mdates
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=30))
问题是 - 数据不会在完整或半小时内开始。 所以我得到的只是正确的间隔,但是从每一半和整个小时都移开了。 即10:17,10:47,11:17,...取决于数据何时开始。 怎么解决这个问题?
使用由byminute
指出的byminute
论证是正确的方法。
此代码有效:
ax.xaxis.set_major_locator(mdates.MinuteLocator(byminute=[0,30])
现在只有一半和几个小时会显示标签。
我最初通过byminute
测试,但没有删除interval=30
,这导致错误:
ValueError:无效的rrule byxxx生成一个空集。
因此,同时使用参数byminute
和interval
不起作用,无论如何都不是必需的。
您可以使用MinuteLocator
只用byminute
参数:
mdates.MinuteLocator(byminute=[0,30])
这将把定位器固定到每一个半小时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.