2013-06-03 239 views
4

我想用matplotlib和Axes.pcolormesh來創建一個圖。我的問題是,我想有沿x軸日期:quadmesh沿x軸的日期

import matplotlib.pyplot as plt 
fig = plt.figure() 
ax = fig.add_subplot(111) 
qmesh = ax.pcolormesh(times,mlt,data.T) 
fig.colorbar(qmesh,ax=ax) 
在這段代碼

times是使用matplotlib.dates.date2num A(1D)numpy的陣列創建。這創建了一個完全合理的繪圖,除了x軸以1e5的數值標記而不是格式爲'%H:%M'的日期/時間。任何建議,將不勝感激。謝謝。

回答

5

除了你已經找到的答案,你可以做ax.xaxis_date(),這是有效的等效。

作爲一個簡單的例子(也使用fig.autofmt_xdate()到旋轉x標籤):

import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
import datetime as dt 

# Generate some data 
x = mdates.drange(dt.datetime(2012, 01, 01), dt.datetime(2013, 01, 01), 
        dt.timedelta(weeks=2)) 
y = np.linspace(1, 10, 20) 
data = np.random.random((y.size, x.size)) 

# Plot 
fig = plt.figure() 
ax = fig.add_subplot(111) 
qmesh = ax.pcolormesh(x, y, data) 
fig.colorbar(qmesh,ax=ax) 
ax.axis('tight') 

# Set up as dates 
ax.xaxis_date() 
fig.autofmt_xdate() 

plt.show() 

enter image description here

+0

感謝Joe,我總是可以指望你更深入地瞭解matplotlib的工作原理。 – mgilson

2

原來我需要:在那裏

import matplotlib.dates as dates 
ax.xaxis.set_major_formatter(dates.DateFormatter('%H:%M')) 

+0

與往常一樣,隨意張貼更好的答案。 – mgilson