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

标签 python matplotlib plot graph frequency

我的问题是绘制两个具有不同频率和值间隔的不同 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() 

Heart Rate frequency should be extended to motionData 心率频率应扩展到motionData

This is how HeartRate normally looks in ~1/6 Hz 这就是心率通常在 ~1/6 Hz 下的样子

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

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

最佳答案

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

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

将显示 x 轴上带有 TimeStamp 的所有曲线。

使用线性插值肯定是可能的,但可能没有多大意义,因为折线图的线条正是这样做的:它们线性连接两个点。

关于python - 如何在同一张图中绘制不同频率的各种数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45613143/

相关文章:

在 Keras 中绘制模型

带有嵌套 for 循环的 Python 代码太慢

python - Pandas - read_hdf 或 store.select 返回不正确的查询结果

python - Django 元类访问外部属性

python - 在 pandas 中绘制 groupby 操作的结果

r - 用 igraph 绘制社区

python - 如何动态调整 Bokeh 图大小

python - Django:将变量从 get_context_data() 传递到 post()

python - 在 Python 中读取未定义数量的列并使用 matplotlib 绘制数据

python - 如何在 ConfusionMatrix 中增加文本大小