4

我想使用 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是一个 (1D) numpy 数组,使用matplotlib.dates.date2num. 这将创建一个完全合理的图,除了 x 轴标有按顺序的值1e5而不是格式中的日期/时间'%H:%M'。任何建议,将不胜感激。谢谢。

4

2 回答 2

5

除了您已经找到的答案之外,您还可以执行ax.xaxis_date(),这实际上是等效的。

作为一个简单的例子(它也用于fig.autofmt_xdate()旋转 x-labels):

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()

在此处输入图像描述

于 2013-06-03T21:57:50.267 回答
2

原来我需要一个:

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

在那里。

于 2013-06-03T21:43:35.247 回答