首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Matplotlib在Python中绘制时间

使用Matplotlib在Python中绘制时间
EN

Stack Overflow用户
提问于 2009-10-15 18:07:11
回答 4查看 483.6K关注 0票数 196

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

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

我试图这样做,但不知何故,它只接受浮点数组。我怎么才能让它画出时间呢?我必须以任何方式修改格式吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-15 18:18:26

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

使用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)

票数 210
EN

Stack Overflow用户

发布于 2017-07-14 05:05:01

7年后,这段代码帮了我大忙。然而,我的时间仍然没有正确显示。

使用Matplotlib2.0.0,我不得不添加来自Paul H的Editing the date formatting of x-axis tick labels in matplotlib的以下代码。

import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%d')
ax.xaxis.set_major_formatter(myFmt)

我将格式更改为(%H:%M),并且时间显示正确。

这一切都要感谢社区。

票数 35
EN

Stack Overflow用户

发布于 2017-09-28 19:21:40

我在使用matplotlib版本: 2.0.2时遇到了问题。运行上面的示例,我得到了一组居中堆叠的气泡。

我通过添加另一行“修复”了这个问题:

plt.plot([],[])

整个代码片段变成:

import datetime
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates


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

# plot
plt.plot([],[])
plt.scatter(x,y)

# beautify the x-labels
plt.gcf().autofmt_xdate()
myFmt = mdates.DateFormatter('%H:%M')
plt.gca().xaxis.set_major_formatter(myFmt)

plt.show()
plt.close()

这将生成一个图像,其中的气泡按所需方式分布。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1574088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档