2017-08-10 9 views
1

私の問題は、周波数と値の間隔が異なる2つの異なる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秒間に心拍数を取得し、1秒間に10回motionDataを取得する。

助けていただければ幸いです。質問する前に多くの質問を確認しましたが、私の問題解決に役立つものは見つかりませんでした。ありがとう!

+0

x軸のデータも必要です。データフレームに既にこのデータが列に入っているか、その列を作成する必要があります。次に、 'df.plot(x = 'TimeStamp'、y = 'Value')' – ImportanceOfBeingErnest

+0

私は線形補間を適用して低い頻度のデータを高い値に拡張し、同じグラフに描画するように指示されました。私はnumpyのinterp関数を見ましたが、私はfpが何であるか理解できませんでした。ところで、回答を回答として書くと、私はそれを受け入れられた回答として承認することができます。手伝ってくれてありがとう。 @ImportanceOfBeingErnest –

答えて

1

x軸のデータも必要です。
データフレームに既にこのデータが列にあるか、その列を作成する必要があります。次に、

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

は、TimeStampがx軸上にあるすべての曲線を表示します。

線形補間を使用することは可能ですが、線図の線が正確にそれを行うので、意味をなさないかもしれません。

関連する問題