2017-02-24 1 views
1
p = [] 
for i in range(len(f)): 
    p.append(peakdetect(H, 0.1)) 
plt.plot(Freq[p], f) 

Da der gesamte Code komplex ist, ich nur den Teil anhängen, wo der Fehler ist.python plt.plot mit unvollständigen indeces

Ich möchte eine Grafik über Freq und f. Und p ist der Index zeigt,

[[126, 269, 409, 542], 
[145, 288, 427, 558], 
[162, 305, 443, 572], 
[177, 320, 457], 
[191, 334, 471], 
[204, 347, 483], 
[217, 359, 494], 
[228, 370, 504], 
[238, 380, 513], 
[248, 389, 521], 
[257, 398, 528], 
[265, 406, 535], 
[273, 414, 541], 
[280, 421, 546], 
[287, 428, 551], 
[294, 434], 
[300, 440], 
[306, 445], 
[312, 451], 
[317, 455], 
[322, 460], 
[327, 464], 
[331, 468], 
[336, 472], 
[340, 476], 
[344, 479], 
[348, 482], 
[351, 486], 
[355, 488], 
[358, 491], 
[361, 494], 
[364, 496], 
[367, 498], 
[370, 500], 
[373, 502], 
[375, 504], 
[378, 506], 
[380, 507], 
[383, 509], 
[385, 510], 
[387, 511], 
[389, 512], 
[392, 513], 
[394, 514], 
[395, 515], 
[397, 515], 
[399, 516], 
[401, 516], 
[403], 
[404], 
[406], 
[408], 
[409], 
[411], 
[412], 
[413], 
[415], 
[416], 
[417], 
[419], 
[420]] 

, in dem

f[0] corresponds to [126, 269, 409, 542] 
f[1] corresponds to [145, 288, 427, 558] 
f[2] corresponds to [162, 305, 443, 572] 
f[3] corresponds to [177, 320, 457] 
f[4] corresponds to [191, 334, 471] 

... 

Sie sehen, die Liste p nicht 4 Spalten nicht abgeschlossen ist, so dass, wenn ich es starten, zeigt es den Fehler: Nur ganze Zahlen, Slices (:), Ellipse (...), numpy.newaxis (None) und ganze oder boolesche Arrays sind gültige Indizes.

So eine Möglichkeit, ich denke, ist der Rest der Spalte mit None abzuschließen, aber ich bin mir nicht sicher. Eine andere Möglichkeit besteht darin, die Spalte zu zerschneiden, aber mit Listenzeichen ist es schwierig zu manipulieren.

peakdetect (H, 0,1) ist eine selbstdefinierte Funktion. Keine Sorge dafür.

Antwort

0

pandas Ihr Problem zu verwenden ist super einfach zu lösen:

import pandas as pd 
a = [[126, 269, 409, 542], 
[145, 288, 427, 558], 
[162, 305, 443, 572], 
[177, 320, 457], 
[191, 334, 471], 
[204, 347, 483], 
[217, 359, 494], 
[228, 370, 504], 
[238, 380, 513], 
[248, 389, 521], 
[257, 398, 528], 
[265, 406, 535], 
[273, 414, 541], 
[280, 421, 546], 
[287, 428, 551], 
[294, 434], 
[300, 440], 
[306, 445], 
[312, 451], 
[317, 455], 
[322, 460], 
[327, 464], 
[331, 468], 
[336, 472], 
[340, 476], 
[344, 479], 
[348, 482], 
[351, 486], 
[355, 488], 
[358, 491], 
[361, 494], 
[364, 496], 
[367, 498], 
[370, 500], 
[373, 502], 
[375, 504], 
[378, 506], 
[380, 507], 
[383, 509], 
[385, 510], 
[387, 511], 
[389, 512], 
[392, 513], 
[394, 514], 
[395, 515], 
[397, 515], 
[399, 516], 
[401, 516], 
[403], 
[404], 
[406], 
[408], 
[409], 
[411], 
[412], 
[413], 
[415], 
[416], 
[417], 
[419], 
[420]] 

df = pd.DataFrame(a) 
df.plot() 

enter image description here

+0

Danke. Aber das Problem ist p ist der Index, so hat es den Fehler: nur ganze Zahlen, Slices (':'), Ellipsen ('...'), numpy.newaxis ('None') und Integer oder Boolesche Arrays sind gültige Indizes. Funktioniert df gut für diese Art von Problem? –

Verwandte Themen