2013-04-22 18 views
7

Ich untersuche die Frequenzantworten von Mikrofonen.Wie erstellt man eine 3D-Polardiagramm mit gnuplot

Um sie zu analysieren, habe ich ein Programm geschrieben, das ausgibt: Ankunftswinkel, Frequenz (Hz) und Antwort bei einem bestimmten Winkel und Frequenz (dB).

ich ein gnuplot Skript geschrieben haben, dass alle diese Daten in einer 3D-Grafik grafisch darstellen wird: gnuplot graph

Der Code für den gnuplot ist:

set xlabel "Arrival Angle (degrees)" font "arial,8" 
set ylabel "Frequency (Hz)" font "arial,8" 
set zlabel "Gain (dB)" font "arial,8" 

set grid lc rgbcolor "#BBBBBB" 

set xrange[-180:180] 
set yrange[0:20000] 
set zrange[-60:0] 

unset key 
set view 30,56,0.98 

splot 'freq.dat' u 1:2:3 with pm3d 

Ich weiß, es ist ein bisschen ungewöhnlich, aber Was ich gerne machen würde, ist dies auf einer Art 3D-Polardiagramm darzustellen, aber ich kann nicht herausfinden, wie es geht. Die (schlechte) Zeichnung unten zeigt die Art von Sache, die ich versucht habe zu erreichen: the eventual aim

Kann mir jemand in die richtige Richtung zeigen?

Vielen Dank im Voraus. Dave.


Update 26. April 2013

Ich habe um gespielt und haben eine aktualisierte Skript erstellt:

reset 
set title "3D version using cylindrical coordinate system" 
set ticslevel 0.0 
set view 30,56,0.98 
set angles degrees 
set mapping cylindrical 
set parametric 
set zrange[-60:0] 
unset key 
splot 'freqResp.dat' u 1:3:2 with pm3d 

Dieses Skript fast tut, was ich brauche, aber leider es gibt nur die hintere Hälfte des Graphen wieder. Die vordere Hälfte bleibt unverplottet. Zum Beispiel: corrupt graph

Incase jemand einbildet das Spiel mit dem Skript oben, habe ich die ‚freqResp.dat‘ Datei here ist gesetzt.

Wenn ich die gleiche Datei mit meinem ursprünglichen Skript plotten, bekomme ich das Bild unten (so alle Daten in der freqResp.dat Datei vorhanden ist): all data is present

Kann mir jemand helfen mit gnuplot bekommen zu machen die vordere Hälfte des Graphen? Danke Dave.

+0

Können Sie ein wenig mehr Informationen geben, das heißt, was Sie die Achsen auf dem neuen Grundstück sein wollen ? – andyras

+0

@andyras x wäre Frequenz, und y wäre in Dezibel Gewinn. – stormCloud

+0

Ich denke, was Sie meinen, ist, dass die z-Achse den Verstärkungswert darstellt, während die x, y-Ebene in Polarkoordinaten ist, wo die Frequenz der Radius ist. – psibar

Antwort

4

Nach Hilfe von mehreren Benutzern, die endgültige Antwort ist:

reset 
set title "3D version using cylindrical coordinate system" 
set ticslevel 0.0 
set view 30,56,0.98 
set angles degrees 
set mapping cylindrical 
set parametric 
set zrange[-60:0] 
unset key 
set pm3d depthorder 
splot 'freqResp.dat' u 1:3:2 with pm3d 

Vielen Dank an alle, die geholfen

+0

ach ja, die "depthorder" -Option von pm3d hat das Rendering-Problem doch gelöst? Streng genug hatte ich diese Option nie zu benutzen, vielleicht hatte ich einfach Glück;) – psibar

Verwandte Themen