我想使用matplotlib和Axes.pcolormesh
创建一个情节。我的问题是我希望沿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
创建的(1D)numpy数组。这创建了一个完全合理的绘图,除了x轴标有1e5
数量级的值而不是'%H:%M'
格式的日期/时间。任何建议,将不胜感激。感谢。
答案 0 :(得分: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()
答案 1 :(得分:2)
原来我需要一个:
import matplotlib.dates as dates
ax.xaxis.set_major_formatter(dates.DateFormatter('%H:%M'))
在那里。