如何解决要求相同第一维的Matplotlib错误ValueError

时间:2017-05-17 14:44:13

标签: python numpy matplotlib

我使用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轴。感谢

1 个答案:

答案 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')