2013-04-22 35 views
7

Sto studiando le risposte in frequenza dei microfoni.come creare un grafico polare 3d con gnuplot

Per aiutarli ad analizzarli, ho scritto un programma che emetterà: angolo di arrivo, frequenza (Hz) e risposta a un dato angolo e frequenza (dB).

Ho scritto uno script gnuplot che grafico tutti questi dati in un grafico 3d: gnuplot graph

Il codice per la gnuplot è:

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 

Lo so che è un po 'insolito, ma quello che mi piacerebbe fare è rappresentarlo in una specie di grafico polare 3d, ma non riesco a capire come farlo. L'(cattivo) disegno sottostante, mostra il tipo di cosa che ho cercato di raggiungere: the eventual aim

Qualcuno mi può puntare nella giusta direzione?

Grazie in anticipo. Dave.


Aggiornamento 26 aprile 2013

Ho giocato in giro e ho creato uno script aggiornato:

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 

Questo script quasi fa quello che mi serve, però, purtroppo, rende solo la metà posteriore del grafico. La metà anteriore rimane non stampata. Per esempio: corrupt graph

Incase chiunque fantasie a giocare con lo script di cui sopra, ho messo il file 'freqResp.dat' è here.

Quando ho stampare lo stesso file con il mio script originale, ho l'immagine qui sotto (in modo che tutti i dati è presente nel file freqResp.dat): all data is present

Qualcuno può aiutarmi a ottenere gnuplot per rendere la metà anteriore del grafico? Grazie Dave.

+0

si può dare qualche informazione in più, vale a dire ciò che si vuole gli assi di essere sulla nuova trama ? – andyras

+0

@andyras x sarebbe la frequenza, e y sarebbe il guadagno in decibel. – stormCloud

+0

Penso che intendi che l'asse z rappresenta il valore del guadagno, mentre il piano x, y è in coordinate polari dove la frequenza è il raggio. – psibar

risposta

4

Dopo l'aiuto di diversi utenti, la risposta finale è:

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 

Grazie a tutti coloro che hanno contribuito a

+0

oh così l'opzione "depthorder" di pm3d ha risolto il problema di rendering dopotutto? Stranamente non ho mai dovuto usare questa opzione, forse ero solo fortunato;) – psibar

Problemi correlati