使用matplotlib.pyplot.plot_date绘制多个数据集

8 投票
1 回答
22432 浏览
提问于 2025-04-17 01:44

这个问题对大多数使用matplotlib的人来说可能很简单。请帮帮我。我想在同一个图表中绘制两个数组,比如[1,2,3,4]和[4,5,6,7],并且是相对于时间的。我尝试使用matplotlib.pyplot.plot_date,但不知道该怎么做。对我来说,似乎在一个图表中只能用plot_date绘制一个趋势。

提前谢谢你们!

1 个回答

13

如果你想在图表上显示多个趋势,最简单的方法就是多次调用绘图函数。比如说:

import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# Generate Data
time = mdates.drange(datetime.datetime(2010, 1, 1), 
                     datetime.datetime(2011, 1, 1),
                     datetime.timedelta(days=10))
y1 = np.cumsum(np.random.random(time.size) - 0.5)
y2 = np.cumsum(np.random.random(time.size) - 0.5)

# Plot things...
fig = plt.figure()

plt.plot_date(time, y1, 'b-')
plt.plot_date(time, y2, 'g-')

fig.autofmt_xdate()
plt.show()

enter image description here

另外,你也可以只用一次 plot(而不是 plot_date)来绘图,然后再调用 plt.gca().xaxis_date(),如果你更喜欢这样的话。其实 plot_date 只是调用了 plot,然后再调用 ax.xaxis_date()

撰写回答