我想做一个循环来为2个不同的csv文件中的每个对应列创建一个图,以便将csv A中的列1和csv B中的列1与相同的时间戳一起绘制(从另一个csv中提取)。我认为修改代码以创建循环时不会遇到麻烦,但是在尝试构建循环之前,必须让matplotlib在第一列工作。
我已经尝试检查以确保将正确的数据传递到函数中,并且顺序正确。例如,我将压缩的数组打印为列表(t_array,b_array),然后检查我的csv文件以验证数据顺序正确。我也尝试过修改轴,刻度和缩放都无济于事。我尝试检查过我从其他项目中提起的帮助程序功能,它们均按预期工作。
sendmail -Mrm <message-id>
read_file()是一个辅助函数,它读取csv文件,并使用键索引的第一列键将列保存到字典中 “ 1”,以此类推。我知道我可能应该先将其更改为索引为0,但这对于以后是个问题...
图片显示了我想要代码做什么和正在做什么
What I would like What my code is actually doing
谢谢您的时间。这是我第一次发贴,因此如果我做错了什么,我深表歉意。我确实试图在发布之前找到答案。
编辑:数据样本; read_file()
def double_plot():
before = read_file(r_before)
after = read_file(r_after)
time = read_file(timestamp)
if len(before) == len(after):
b_array = np.asarray(before[1])
a_array = np.asarray(after[1])
t_array = np.asarray(time[1])
plt.plot(t_array, b_array)
plt.plot(t_array, a_array)
plt.show()
else:
print(len(before))
print(len(after))
print("dimension failure")
再次编辑:^使用熊猫要好得多,但是我将其留在这里,因为看到它用数据帧完成后很有趣
答案 0 :(得分:0)
我与plot函数一起使用的数组包含字符串而不是浮点数。
这些链接说明了该问题以及多种解决方法: Matplotlib y axis values are not ordered In Python, how do I convert all of the items in a list to floats?