我对Python的世界还很陌生,我已经在很多地方寻找了一种方法来克服我遇到的一个问题。你知道吗
首先,一些背景以便尽可能清楚。我已经创建了一个(相当大的)CAN数据消息字典。CAN消息ID用作键,而每条消息在一个列表中与其对应的时间戳配对。结果是一个字典,其格式如下(但要大得多):
d = {'1011C0BB': [[30.1429, '0FFF0000']],
'00132058': [[30.1942, '00'], [30.2512, '00'], [40.5021, '00]]
……等等。要点是字典有一堆键,所有的键都有数据列表,这些列表的长度是可变的。你知道吗
我试图想象这些位是如何随着时间的推移而变化的,这样我就可以尝试对它们的含义(或者至少是它们的分组)进行反向工程。我用以下代码实现了逐点逐位绘制数据:
colors = list(product(np.arange(0.00,1.00,0.20),repeat=3))
rgb = 0
for i in range(0,len(rawdata_dct.keys())):
plt.hold(True)
plt.figure(i)
plt.title(rawdata_dct.keys()[i])
for j in range(0,len(rawdata_dct.values()[i])):
timedata = []
timedata.append(rawdata_dct.values()[i][j][0])
for k in range(0,len(rawdata_dct.values()[i][j][1])):
bitdata = []
bitdata.append(int(rawdata_dct.values()[i][j][1][k],16))
for m in range(0,len(bitdata)):
plt.plot(timedata, bitdata[m], marker='o',
color=[colors[rgb][0],colors[rgb][1],colors[rgb][2]],
label=rawdata_dct.keys()[i])
del bitdata
del timedata
rgb += 1
这可能不是最干净或最具python风格的方法,但它可以工作,并且它会根据CAN ID对数据进行颜色编码(最初的目的是生成一个包含所有数据的图形,但这不是一种有效的查看方式)
我的主要问题是,它产生了大量的图形(或者一个图形上有大量的彩色数据,但有一些细微的改动)。我希望找到一种方法,用用户输入控制最外层循环的迭代。最终的目标是,脚本填充第一个图形,然后等待用户输入(例如,按“空格”),然后再填充下一个图形。我怎么能做到这一点?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐