我使用matplotlib绘制一些数据,我的代码看起来像这样
import datetime
import random
import matplotlib.pyplot as plt
x = [datetime.datetime.strptime(str(i), '%H') for i in range(24)]
# y is an array consists of 8640 elements for 1 day
y = [ 299.8, 299.8, 299.8, ....... 299.7, 299.7, 299.6, 299.6]
# z is an array consists of 144 elements for 1 day
z = [32, 32, 32.3, 33.54, .............31.43, 31.21, 36]
plt.plot(x,y)
plt.plot(x,z)
plt.show
但是我收到了这个错误。
ValueError: x and y must have same first dimension
我理解的是x和y都应该等于长度。 " Y"每10秒产生一次数据,总共8640点和" z"是每10分钟产生的数据,因此总分为144。 我看着SO和谷歌,但找不到解决我的问题。我也试过这个' plotting unix timestamps in matplotlib'
我是python和matplotlib的新手。有人可以指导我如何解决这个问题并正确生成x轴。感谢
答案 0 :(得分:1)
pandas非常方便处理日期和日期范围:
获取2017年5月17日至2017年5月18日之间的日期范围,频率小时或秒:
pd.date_range(start='2017 05 17', end='2017 05 18', freq='H')
pd.date_range(start='2017 05 17', end='2017 05 18', freq='s')
或其他选项是从某个时间开始,指定频率(在此示例中为小时),以及您需要的时段数
pd.date_range(start='2017 05 17', periods=15, freq='H')