2017-10-26 18 views
0

オシロスコープから波形を読み込みます。波形は時間の関数として10個のセグメントに分割されます。私は完全な波形を描きたいと思います。言い換えれば、1つのセグメントは、別のセグメントの上に(または下に)、「垂直オフセットで」配置します。さらに、信号強度を示すにはカラーマップが必要です。あなたが見ることができるように、すべての曲線が許容できないとなる、重畳されている同じグラフにオフセットを持つ複数の曲線をプロットする方法

enter image description here

:私は、次のプロットを得ることができました。 1つは、yデータにオフセットを追加することができますが、これはどのようにしたいのですか。確かに、私のデータをプロットするもっときれいな方法がありますか?私はピラブを使ってこの問題を解決するためにいくつかのことを試みましたが、進める方法やこれが正しい方法であるかどうかはわかりません。

ご協力いただければ幸いです。

import readTrC#helps read binary data from an oscilloscope 
import matplotlib.pyplot as plt 

fName = r"...trc" 
datX, datY, m = readTrc.readTrc(fName) 

segments = m['SUBARRAY_COUNT'] #number of segments 

x, y = [], [] 

for i in range(segments+1): 
    x.append(datX[segments*i:segments*(i+1)]) 
    y.append(datY[segments*i:segments*(i+1)]) 

plt.plot(x,y) 
plt.show() 
+0

([ギャラリー]を通じて見てhttps://matplotlib.org/gallery/ index.html)、何をしようとしているのかに似たものを見つけて、あなたの目的に合ってください。 – wwii

答えて

1

垂直とのプロットはfrequency trailのように聞こえるオフセット。
kde_joyplot example from seaborn

ここちょうどyの値を調整しないことを一つの方法です。

Frequency Trail in MatPlotLib

同じプロットもjoyplot /稜線プロットを造語されています。 Seabornには、一連のプロット(FacetGrid)を作成し、それらの間のオフセットを調整して同様の効果をもたらす実装があります。

https://seaborn.pydata.org/examples/kde_joyplot.html

ラインプロットを使用した例は次のようになります。うち

import seaborn as sns 
import matplotlib.pyplot as plt 
import numpy as np 
import pandas as pd 

segments = 10 
points_per_segment = 100 

#your data preparation will vary 
x = np.tile(np.arange(points_per_segment), segments) 
z = np.floor(np.arange(points_per_segment * segments)/points_per_segment) 
y = np.sin(x * (1 + z)) 


df = pd.DataFrame({'x': x, 'y': y, 'z': z}) 

pal = sns.color_palette() 
g = sns.FacetGrid(df, row="z", hue="z", aspect=15, size=.5, palette=pal) 
g.map(plt.plot, 'x', 'y') 
g.map(plt.axhline, y=0, lw=2, clip_on=False) 
# Set the subplots to overlap 
g.fig.subplots_adjust(hspace=-.00) 
g.set_titles("") 
g.set(yticks=[]) 
g.despine(bottom=True, left=True) 

plt.show() 

enter image description here

+0

@DenGorこれが助けになるかどうかわからない場合は、関連する実装の詳細を含めるように修正してください。そうでない場合は完全に削除してください。 –

+2

私はダウンボートしませんでしたが、あなたの答えは主にリンクです。あなたは、コード例を使ってあなたの答えを完成させるか、答えを削除してコメント内のリンクを投稿することができますか? – DavidG

+0

おかげさまでDavidGは、後で説明するために自家製の例を得ました。 –

関連する問題