Establecer etiqueta en grupo multiplot en gnuplot

viktor.radovic:

Estoy trazando una imagen con 4 gráficos diferentes usando gnuplot. Las etiquetas para sus ejes x e y tienen el mismo significado. Si lo estoy tramando así:

set multiplot layout 2,2 rowsfirst

set xlabel "x"
set ylabel "y"


set title offset -3,-3

set xrange [20:70]
set yrange [0:15000]
set title "Plot 1" 
plot 'data5.list' u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle
set xrange [20:70]
set yrange [0:15000]
set title "Plot 2" 
plot 'data5.list' u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle
set xrange [20:70]
set yrange [0:15000]
set title "Plot 3" 
plot 'data5.list' u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle
set xrange [20:70]
set yrange [0:15000]
set title "Plot 4" 
plot 'data5.list' u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle


unset multiplot

Tengo los cuatro gráficos y sus etiquetas, pero quiero lograr tener una etiqueta para los cuatro, como en este ejemplo .

Intenté con la etiqueta no establecida para otras 3 parcelas, pero solo obtengo etiquetas en la primera de ellas, mientras que la otra no tiene etiquetas en absoluto.

vagoberto:

En lugar de usar xlabely ylabel, es posible que desee ir con set label. Por ejemplo,

#!/usr/local/bin/gnuplot

datafile='tmp.dat'          # file to plot

set xlabel " "              # no x-label
set ylabel " "              # no y-label

# assuming all plots have same x and y range
set xrange [-2:2]           
set yrange [-4:4]

# same setting for all graph titles
set title offset -3,-3

# puts x-label and y-label manually
set label 1 'x axis' at screen 0.49,0.02
set label 2 'y axis' at screen 0.01,0.5 rotate by 90

# now the graphs: notice that rowsfirst is given by default
set multiplot layout 2,2
  do for [i=1:4]{
    set title 'plot '.i
    plot datafile u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle
    unset label 1
    unset label 2
  }
unset multiplot

reset

Si todos los gráficos se pueden hacer con la misma sintaxis de línea, entonces recomiendo usar un bucle do (como en el ejemplo anterior) en lugar de copiarlo cada vez.

Observe que gnuplotcolocará las etiquetas 1 y 2 cada vez que se traza un gráfico. Es por eso que puse unset label 1y unset label 2dentro del do-loop, por lo que las etiquetas se colocan solo en la primera iteración.


Si desea tener algo similar al ejemplo que proporcionó, le recomiendo usar este script (explicado a través de los comentarios):

#!/usr/local/bin/gnuplot

datafile='tmp.dat'          # file to plot

# parameters to configure margins of each graph
x0=0.1                      # left margin all graphs
y0=0.99                     # top margin all graphs
lengthx=0.4                 # horizonal length of each graph
lengthy=0.4                 # vertical length of each graph
spacex=0.04                 # horizontal space between each graph
spacey=0.04                 # vertical space between each graph

# This is a macro: configure the top, right, left, and bottom margins of each graph.
# It will depend on the value of i and j.
set macro
i=0; j=0;
SETMARGINS = "set tmargin at screen (y0-i*(lengthy+spacey));\
              set bmargin at screen (y0-i*(lengthy+spacey)-lengthy);\
              set lmargin at screen (x0+j*(lengthx+spacex));\
              set rmargin at screen (x0+j*(lengthx+spacex)+lengthx)"

# Assuming all plots have the same x and y range. If not, set it in each plot below
set xrange [-1.5:1.5]
set yrange [-4:4]

# general setting for plot titles
set title offset -3,-3

# don't worry about the axis labels for now
unset xlabel
unset ylabel

#############################################################
set multiplot

  ##### top-left 
  i=0; j=0;
  @SETMARGINS                       # calling the macro for (i,j)=(0,0)
  set format x ''                   # no numbers in x-axis
  set format y '%.1f'               # but with numbers in y-axis

  set title 'plot 1'
  plot datafile u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle

  ##### top-right
  i=0; j=1;
  @SETMARGINS                       # calling the macro for (i,j)=(0,1)
  set format y ''                   # no numbers in x nor y-axis

  set title 'plot 2'
  plot datafile u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle

  ##### bottom-left
  i=1; j=0;
  @SETMARGINS                       # calling the macro for (i,j)=(1,0)
  set format xy '%.1f'              # numbers in both axes

  set title 'plot 3'
  plot datafile u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle

  ##### bottom-left 
  i=1; j=1;
  @SETMARGINS                       # calling the macro for (i,j)=(1,1)
  set format y ''                   # no numbers in y-axis

  # now we set the x and y labels for the 4th plot, and move them to the desired position
  set xlabel 'xlabel' offset screen -0.5*(spacex+lengthx),0.0
  set ylabel 'ylabel' offset screen -lengthx-1.5*spacex,0.5*(spacey+lengthy)
  set title 'plot 4'
  plot datafile u 2:1 w lp pt 7 lt 7 lc rgb 'red' notitle

unset multiplot

reset

más información: gnuplotting

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Multiplot en bucle en gnuplot

Multiplot apilado verticalmente en gnuplot

Multiplot en varias páginas pdf gnuplot

gnuplot clave superpuesta (leyenda) en multiplot

Multiplot en varias páginas pdf gnuplot

establecer etiqueta en cypherquery dinámicamente

establecer etiqueta en cypherquery dinámicamente

¿Cómo hacer zoom en una subparcela en modo multiplot en gnuplot?

Modificar la alineación del margen en gnuplot en modo multiplot

Establecer etiqueta en coordenadas específicas en netlogo

gnuplot cómo poner leyenda / clave en la tercera columna con multiplot

Establecer y animar fecha y hora en una etiqueta

Establecer un ancho y alto en una etiqueta A

matlab - establecer la etiqueta de marca en el origen

Cómo establecer una variable en un nombre de etiqueta

Establecer valores en la etiqueta html del controlador angularjs no funciona

Establecer valores diferentes de la etiqueta en Formularios de Google

cómo establecer el valor en la etiqueta div javascript

Establecer etiqueta de nodo en la canalización de Jenkins

Establecer la etiqueta ToolBar en Manifest o activity.xml

¿Cómo establecer un atributo href en una etiqueta li?

¿Cómo establecer un atributo href en una etiqueta li?

gnuplot: poner fracciones en la etiqueta del eje

Etiqueta dúplex y tics en gnuplot (epslatex)

¿Agregar una línea de color a una etiqueta en gnuplot?

Mostrar un valor de columna en la etiqueta con gnuplot

¿Cómo trazar puntos con etiqueta y color en Gnuplot?

Cómo eliminar la etiqueta de la etiqueta de grupo en Odoo 11 en vistas

gnuplot: establecer el estilo de línea en un bucle for

TOP Lista

CalienteEtiquetas

Archivo