机缘巧合之下,看到了这么一个题,之前也没接触过可视化这一块,感觉挺有意思就顺手做了做
大致意思呢,就是在csv里有三种数据:一个时间,一个振幅(emmm,有点别扭),一个频率。但是在频率上有问题,有外在频率干扰,要过滤掉干扰,找出传递真正信息的频率。并对其传递的信息做出可视化分析
附上csv文件:https://blog-1258660208.cos.ap-beijing.myqcloud.com/data.csv (个人保证绿色无毒,可放心下载)
都准备好了就开撸~
首先先是文件的内容读取
import csv #导入模块
milliseconds = [] #创建用于存储时间的列表(横坐标)
amplitude = [] #创建用于存储振幅的列表(纵坐标)
with open("D:\\Users\Administrator\Desktop\data.csv") as f: #绝对路径,以‘r’模式处理(默认)
dataReader = csv.reader(f)
for row in dataReader:
if(int(row[2][1:3]) == 15): #索引为2的数据代表频率,因为发现15.多的是传递信息的。字符串切片转整型进行判断
milliseconds.append(round(float(row[0]))) #横坐标添加
amplitude.append(float(row[1][1:])) #纵坐标添加
然后做出处理即可
from matplotlib import pyplot as plt #导入模块
plt.plot(milliseconds, amplitude) #把横纵坐标对应的内容加进来
plt.show() #显示图窗
结果如下(可能不是很好看,可以再优化优化?):