Ich versuche, eine Abbildung Objekt als Beiz-Datei zu speichern und die Daten später abrufen. Ich habe an einem Beispielcode geübt, aber ich kann die Daten aus der Pickle-Datei nach dem Laden nicht abrufen. Unten ist mein CodeEingelegte Matplotlib Abbildung Objekt- Abrufen von Daten
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pickle
Fs = 8000
f = 1000
sample =20000
x = np.arange(sample)
y = np.sin(2 * np.pi * f * x/Fs)
plt.figure()
plt.plot(x, y)
plt.xlabel('voltage(V)')
plt.ylabel('sample(n)')
plt.show()
dt=1.0/Fs
winsize=1024
shift=int(winsize/2)
frqlen=shift
datalen=len(y)
FFTdata=np.zeros((0,frqlen))
fftfreq=np.fft.fftfreq(winsize,d=dt)[:frqlen]
for i in range(0,datalen,shift):
xdata=x[i:i+winsize]
if len(xdata)!=winsize:
break
fftdata=np.fft.fft(xdata,winsize)
absdata=np.abs(fftdata)[:frqlen]
logpower=10* np.log(absdata ** 2).reshape((1,len(absdata)))
FFTdata=np.append(FFTdata,logpower,axis=0)
sampleno=np.arange(1,len(FFTdata)+1)
fig,ax=plt.subplots()
FFTdata=FFTdata.T
im=ax.pcolor(sampleno,fftfreq,FFTdata)
cbar=fig.colorbar(im)
fig.show()
pickle.dump(fig,open("dumptrial.p",'wb'))
figure=pickle.load(open("dumptrial.p",'rb'))
figure.show()
data=figure.axes[0].images[0].get_data()
In der letzten Zeile data=figure.axes[0].images[0].get_data()
Python ein Indexing error: List index out of range
wirft.
Kann mir bitte jemand helfen, wie man Daten vom eingelegten Figurobjekt holt?
(Die Quelle I für diesen Code verwendet wird: https://gist.github.com/demisjohn/883295cdba36acbb71e4 http://fredborg-braedstrup.dk/blog/2014/10/10/saving-mpl-figures-using-pickle/ )
Bitte entsprechende Vertiefung legen zum code.Was ist die Operation, die Sie in Ihrer if-Bedingung testen wollten? if len (xdata) <> winsize: ' – otayeby