在matplotlib中去掉x轴时间标签的秒数

4
我想去掉x轴标签中的秒数,因为它们是不必要的。
另外,我想将刻度标签居中对齐,而不是将它们定位到刻度线左侧。
有什么建议吗?
以下是我使用的部分代码,如果这有帮助的话:
fig=plt.figure()
ax=fig.add_subplot(111)
line1 = plot(table.index,table[data],color=colors[0])

fig.autofmt_xdate(rotation=0)   

tickFormat =  matplotlib.ticker.LinearLocator(numticks=5)
ax.xaxis.set_major_locator(tickFormat)            

enter image description here


你能展示一下你是如何生成这个图表的代码吗?你只需要调整格式化程序的一个参数。(但我不想猜测你使用的是哪个格式化程序) - tacaswell
我已经使用了fig.autofmt_xdate()进行格式化,是否有特定的格式化程序可以用来操作秒数的外观? - Osmond Bishop
1个回答

8
from matplotlib.dates import DateFormatter
formatter = DateFormatter('%H:%M')
plt.gcf().axes[0].xaxis.set_major_formatter(formatter)  

1
还有一种方法可以调整自动格式化程序。记得在可以时接受你自己的答案。 - tacaswell
关于字符串参数的格式,请参考以下链接:http://strftime.org/ - snake_charmer
2
tacaswell: "还有一种方法可以调整自动格式化程序" - 如何操作?此解决方案也会在使用浮点值的ax.set_xticks()时出现问题:"ValueError:DateFormatter发现x = 0的值,这是一个非法日期。这通常是因为您没有告知轴它正在绘制日期,例如通过ax.xaxis_date()"。如何解决这个问题? - naught101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接