如何在同一张图中绘制不同频率的各种数据?

How to plot various data in different frequencies in the same graph?

我的问题是绘制两个具有不同频率和值区间的不同 csv 文件。我只是想在单位时间内对 heartRate 和 motionData 进行比较。

我使用 matplotlib 来实现。

下面的代码给出了这样一个图表:

import numpy as np 
import pandas 
import matplotlib.pyplot as plt 

# fake data 
x = np.genfromtxt('/Users/yusufkamilak/Desktop/motionData.csv', delimiter=',', skip_header=10,
                     skip_footer=0, names=['TimeStamp', 'AccelerationX']) 
y = np.genfromtxt('/Users/yusufkamilak/Desktop/heartRate.csv', delimiter=',', skip_header=2,
                     skip_footer=0, names=['TimeStamp', 'Value'])

# data frames 
xdf = pandas.DataFrame(x) 
ydf = pandas.DataFrame(y) 

# plot x data, get an MPL axes object 
ax = xdf.plot() 

# plot y data, using the axes already created 
ydf.plot(ax=ax) 



plt.show() 

心率频率应扩展到 motionData

这就是 HeartRate 在 ~1/6 Hz

中的正常显示方式

由于 motionData 有超过 60,000 行值,heartRate 看起来好像从未存在过。但是两个值的时间间隔是相同的。每 5-6 秒获取一次心率,每秒获取 10 次运动数据。

任何帮助将不胜感激,在提问之前我已经检查了很多问题但我找不到可以帮助我解决问题的问题。谢谢!

您还需要一些 x 轴数据。
您的数据框已经在列中包含此数据,或者您需要创建该列。那么

ax = xdf.plot(x='TimeStamp', y=['AccelerationX', 'AccelerationY'])
ydf.plot(x='TimeStamp', y='Value', ax=ax)

将显示所有曲线,其中 TimeStamp 在 x 轴上。

当然可以使用线性插值,但可能意义不大,因为线图的线条正是这样做的:它们线性连接两点。