• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在Python中使用Matplotlib绘制时间

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

有一个格式为(HH:MM:SS.mmmmmm)的时间戳数组和另一个浮点数数组,每个浮点数都对应于时间戳timestamp数组中的一个时间戳。

可以使用Matplotlib绘制x轴上的时间和y轴上的数字吗?

我试图这样做,但不知到什么原因,它只接受浮点数数组。到底应该怎么绘制时间轴呢?

最佳解决方法

必须先将时间戳转换为Python datetime对象(使用datetime.strptime)。然后使用date2num将日期转换为matplotlib格式。

使用plot_date绘制日期和值:

dates = matplotlib.dates.date2num(list_of_datetimes)
matplotlib.pyplot.plot_date(dates, values)

次佳解决方法

您也可以使用pyplot.plot绘制时间戳和值对(在从字符串表示中解析它们之后)。 (这个做法,使用matplotlib版本1.2.0和1.3.1测试过)

例:

import datetime
import random
import matplotlib.pyplot as plt

# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

# plot
plt.plot(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()

plt.show()

产生的图像:


这和散点图一样:

import datetime
import random
import matplotlib.pyplot as plt

# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

# plot
plt.scatter(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()

plt.show()

产生一个类似这样的图像:

参考资料

  • Plotting time in Python with Matplotlib


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
在TensorFlow中如何将Tensor张量转换为numpy数组?发布时间:2022-05-14
下一篇:
在Python中,如何将RGB图像转换为灰度图像?发布时间:2022-05-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap