es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Representar puntos en una superficie tridimensional con pm3d en Gnuplot.

Estoy tratando de trazar un punto en una superficie tridimensional y también en la base de la superficie tridimensional utilizando gnuplot. A continuación se muestra el código que estoy utilizando, los datos “datx.dat” están en la siguiente ubicación https://www.dropbox.com/s/8evj5da7yco1xmo/datx.dat?dl=0

set dgrid3d 100,100
set cntrparam levels disc -242.3,-242.5,-243,-244,-245,-246,-247,-248
set contour both                                                     
set hidden3d back offset 1 trianglepattern 3 undefined 1 altdiagonal bentover        
#set palette rgbformulae 12,12,12                                                     
set view 50,320                                                                      
set contour both
unset key 
unset colorbox

$data << EOD
1175.4,1.61,-242.01
EOD

splot 'datx.dat' using 1:2:3 with pm3d, \
      $data using 1:2:3 with labels point pt 7

A continuación se muestra la salida, no veo el punto en la ubicación deseada. ¿Cómo puedo lograr esto en gnuplot?

Imagen

Resultado deseado:

Imagen

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puedes obtener la salida deseada modificando el código de la siguiente manera:

    set dgrid3d 100,100
    set cntrparam levels disc -242.3,-242.5,-243,-244,-245,-246,-247,-248
    set contour both                                                     
    set hidden3d back offset 1 trianglepattern 3 undefined 1 altdiagonal bentover        
    set view 50,320                                                                      
    unset key 
    unset colorbox
    
    $data << EOD                     
    1175.4 1.61 -242.01
    EOD
    
    splot 'datx.dat' using 1:2:3 with pm3d, \
          $data using 1:2:3:(0) with labels point pt 7 offset 0,-1,0, \
          $data using 1:2:(-250) with labels point pt 7 offset 0,-1,0
    

    Explicación:

    • ($data using 1:2:3:(0) with labels point pt 7 offset 0,-1,0) – esto agrega una etiqueta al punto en la superficie. El argumento offset mueve la etiqueta para que no sea oculta por la superficie.
    • ($data using 1:2:(-250) with labels point pt 7 offset 0,-1,0) – esto agrega una etiqueta al punto en la base de la superficie. El argumento offset mueve la etiqueta más cerca de la base.

    Con estos cambios, la salida debería verse como la salida deseada.

Comments are closed.