2013-04-17 56 views
4

我想从我的x轴标签中删除秒,因为它们是不必要的。删除matplotlib中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

+0

你能告诉我们你是如何产生这个图形的某些代码的代码?你只需要调整格式化程序的参数。 (但我不想猜你使用的格式化程序) – tacaswell

+0

我已经使用了fig.autofmt_xdate()进行格式化,是否有一个特定的格式化程序可以用来控制秒的外观? –

回答

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

还有一种方法可以调整自动格式化程序。请记住接受你自己的答案,当它允许你 – tacaswell

+0

关于字符串参数的格式,这里是参考:http://strftime.org/ –

+1

tacaswell:*“还有一种方法来调整自动格式化器” * - 怎么样?此外,如果您还使用具有浮点值的'ax.set_xticks()',则此解决方案会中断:*“ValueError:DateFormatter找到x = 0的值,这是非法日期。通常发生这种情况通常是因为您没有通知轴表示它正在绘制日期,例如,使用ax.xaxis_date()“*。你怎么能解决这个问题? – naught101