Python 如何解决要求相同第一个维度的Matplotlib error ValueError

Python 如何解决要求相同第一个维度的Matplotlib error ValueError,python,numpy,matplotlib,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)]

我正在使用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和google,但找不到解决我问题的方法。我也试过这个


我不熟悉python和matplotlib。有人能指导我如何解决这个问题,并正确地生成x轴吗。谢谢

熊猫在处理日期和日期范围方面非常方便:

获取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')

这怎么会是一个奇怪的错误?要进行绘图,matplotlib需要知道要在轴上标记的每个点的x和y坐标。如果x和y的长度不同,则没有每个点都有x,y坐标对,因此无法进行绘图。您可能需要将x子采样到y和z阵列采样的相同时间间隔at@tom子样本,但如何。因为y数据点每10秒生成一次,z数据点每10分钟生成一次。你能给我举个例子吗。谢谢lotplt.plotx,y很好,但是你的x没有意义。它应该包含y中每个元素的时间戳。绘制z也是如此。在这里,您需要一个不同的x和z中元素的时隙。@kazemakase非常感谢。你能帮我举个例子吗。my y包含一天3000个数据点,z包含1000个数据点。我怎样才能相应地画x来解决我的问题。@robbin先试试简单的方法:xy=np.linspace0,1,3000和xz=np.linspace0,1,1000。3000/1000分似乎与您的问题不一致,您的回答是1000+/500分,我将尝试一下,很快就会回来。非常感谢您的帮助。@很抱歉反应太晚。我算出了,对于x轴,你的答案很好。谢谢。很高兴听到@robbin!