2017-03-28 22 views
0

私はこのコードを書いていますが、サブプロットにエラーがあります。私は自分のコードで何が間違っているのではない。手伝って頂けますか ?Pythonでmatplotlibを使ってサブプロットを作成する方法

import pywt 
import scipy.io.wavfile as wavfile 

import matplotlib.pyplot as plt 

rate,signal = wavfile.read('a0025.wav') 
time = [x /rate for x in range(0,len(signal))] 
tree = pywt.wavedec(data=signal[:1000], wavelet='db2', level=4, mode='symmetric') 
print(len(tree)) 
newTree = [tree[0]*0, tree[1]*0, tree[2]*0, tree[3]*0, tree[4]] 
recSignal = pywt.waverec(newTree,'db2') 
fig, ax = plt.subplot(2, 1) 
ax[0].plot(time[:1000], signal[:1000]) 
ax[0].set_xlabel('Czas [s]') 
ax[0].set_ylabel('Amplituda') 
ax[1].plot(time[:1000], recSignal[:1000]) 
ax[1].set_xlabel('Czas [s]') 
ax[1].set_ylabel('Amplituda') 
plt.show() 

エラー:エラーとして

raise ValueError('Illegal argument(s) to subplot: %s' % (args,)) 
    ValueError: Illegal argument(s) to subplot: (2, 1) 
+3

私たちはあなたのコードのすべてを読みたくない、とこれらのリンクは、最終的に失敗することがあります。あなたの質問に関連する部分を貼り付けてください。 –

答えて

1

は明らかにあなたがpyplot.subplot()に不正な引数を渡され、述べています。 documentation for that functionを見ると、3つの引数(1つに凝縮可能):ax = plt.subplot(2, 1, 1)またはax = plt.subplot(211)があることがわかります。

しかし、あなたが探している機能はplt.subplots()(最後にsに注意してください)、which generates both a figure and an array of subplots次のとおりです。

f, (ax1, ax2) = plt.subplots(1, 2, sharey=True) 
ax1.plot(x, y) 
ax1.set_title('Sharing Y axis') 
ax2.scatter(x, y) 
関連する問題