我有一个格式为 (HH:MM:SS.mmmmmm) 的时间戳数组和另一个浮点数数组,每个数组对应于时间戳数组中的一个值。
我可以使用 Matplotlib 在 x 轴上绘制时间和在 y 轴上绘制数字吗?
我试图这样做,但不知何故它只接受浮点数组。我怎样才能让它绘制时间?我必须以任何方式修改格式吗?
更新 :
自 matplotlib 版本 3.5 以来,此答案已过时。该plot函数现在直接处理日期时间数据。见https://matplotlib.org/3.5.1/api/_as_gen/matplotlib.pyplot.plot_date.html
plot
不鼓励使用 plot_date。这种方法的存在是出于历史原因,将来可能会被弃用。 应使用 plot 直接绘制类似日期时间的数据。 如果您需要将纯数字数据绘制为 Matplotlib 日期格式或需要设置时区,请在绘图前调用 ax.xaxis.axis_date / ax.yaxis.axis_date。请参阅 Axis.axis_date。
不鼓励使用 plot_date。这种方法的存在是出于历史原因,将来可能会被弃用。
应使用 plot 直接绘制类似日期时间的数据。
如果您需要将纯数字数据绘制为 Matplotlib 日期格式或需要设置时区,请在绘图前调用 ax.xaxis.axis_date / ax.yaxis.axis_date。请参阅 Axis.axis_date。
旧的,过时的答案:
您必须首先将时间戳转换为 Pythondatetime对象(使用datetime.strptime)。然后用于date2num将日期转换为 matplotlib 格式。
datetime
datetime.strptime
date2num
使用 绘制日期和值plot_date:
plot_date
import matplotlib.pyplot import matplotlib.dates from datetime import datetime x_values = [datetime(2021, 11, 18, 12), datetime(2021, 11, 18, 14), datetime(2021, 11, 18, 16)] y_values = [1.0, 3.0, 2.0] dates = matplotlib.dates.date2num(x_values) matplotlib.pyplot.plot_date(dates, y_values)