2011-05-03 14 views
5

Tengo problemas al intentar crear un gráfico 3D (mapeado 2D).Gráfico mapeado 3D con Gnuplot No es exacto

Los datos estoy generando debe crear una protuberancia 3 dimensional distribución normal, o, cuando "mapea", que debe ser similar un gráfico 3D aplanada, con color que se utiliza como la tercera dimensión

El script estoy usando para generar el gráfico asignado es el siguiente:

#!/usr/bin/gnuplot 

reset 

#set terminal png 
set term postscript eps enhanced 

set size square 
set xlabel "X position" 
set ylabel "Y position" 
#set zlabel "Synaptic Strength" 

#Have a gradient of colors from blue (low) to red (high) 
set pm3d map 
set palette rgbformulae 22,13,-31 

#set xrange [0:110] 
#set yrange [0:80] 
#set zrange [0:1] 

set style line 1 lw 1 

#set title "Title" 

#Don't want a key 
unset key 

#set the number of samples 
set dgrid3d 51,51 

set hidden3d 

splot DataFile u 1:2:3 

cuando corro en la siguiente DataFile (http://www.sendspace.com/file/ppibyw)

consigo la siguiente salida enter image description here

La leyenda indica un rango z de 0-0.03, sin embargo, el archivo de datos tiene valores z mucho más grandes, como 0.1. Obviamente no puedo publicar un gráfico que sea tan inexacto. Además, necesito un mejor gráfico para obtener una mejor idea de lo que está mal con mi simulación.

¿Alguien sabe por qué gnuplot maneja gráficos mapeados en 3D como este? Sospecho que tiene que ver con el número y la naturaleza de las muestras.

+1

Hola puk, He probado su secuencia de comandos y puedo reproducir el error obvio (versión 4.4).Intentaría dos cosas: 1: Como sugirió, reduzca el número de puntos y vea qué sucede. 2: reduce el número de dígitos de cada número. Como último recurso, puede marcar sus hallazgos [aquí] (http://sourceforge.net/tracker/?group_id=2055&atid=102055). – Woltan

+0

@Woltan Miré a mi alrededor y reduje el problema a promediar los bordes. Por lo tanto, si tiene una matriz de 3x3 de [0,0,0, 0,100,0, 0,0,0], se promediará el valor de 100 basado en todos los ceros circundantes. Encontré una solución a esto que dibuja una serie de pequeñas cajas por valor de matriz, pero se bloquea b/c Tenía demasiados valores, en ese momento me di por vencido. – puk

Respuesta

7

Se problema está en el set dgrid3d 51,51

echar un vistazo a lo que sucede si se escribe set dgrid3d 51,102 (mucho mejor) o un conjunto dgrid3d 51,500 (mucho peor)

El punto es que (de la ayuda)

La cuadrícula está igualmente espaciada en x (filas) y en y (columnas); los valores z se calculan como promedios ponderados o interpolaciones spline de los valores z de los puntos dispersos. En es decir, se crea una cuadrícula regularmente espaciada y la aproximación uniforme a los datos brutos es evaluada para todos los puntos de la grilla. Solo esta aproximación está graficada, pero no son datos brutos.

Se podría tratar de mejorar la aproximación si quieres ver la ayuda (? Dgrid3d), pero algo acaba de trazar la recta de datos. Puedes hacerlo abandonando el comando dgrid3d por completo. Tendrá que modificar su archivo de datos para que haya una línea en blanco cuando cambie la coordenada x. Por ejemplo

3.10000000000000142109 4.15692193816530508599 0.00004084299890679580 
3.10000000000000142109 4.33012701892219364908 0.00001123746243460237 

3.15000000000000124345 0.08660254037844386521 0.00000816290100763514 
3.15000000000000124345 0.25980762113533162339 0.00001935936190868058 

Luego, con esta escritura simplificada

set terminal png![enter image description here][1] 

#set size square 
set xlabel "X position" 
set ylabel "Y position" 

#uncomment the next command to eliminate the mysterious glitch around x=3.4 
set yrange [0.1:4.5] 
set pm3d map 

set output "grid_merged.png" 
splot "grid_merged2.dat" u 1:2:3 
set output 
set term pop 

consigo plotting the actual data rather than interpolated data

que es mejor que la que se obtiene con la trama interpolada. No estoy seguro de qué causa la falla 3.4, no está en otras vistas (no mapeadas) - alterar el yrange lo elimina - aunque no estoy seguro de que cambiar el rango y sea una trampa en términos de los resultados de la simulación ....

+0

gracias por la respuesta. Esto realmente funciona – puk

Cuestiones relacionadas