gnplot 5.0. Spiderplot en 4 ejes hazlo tu mismo

gnplot 5.0. Spiderplot en 4 ejes hazlo tu mismo
Al trabajar en la visualización de datos para un artículo, se hizo necesario tener 4 ejes con etiquetas positivas en todos.

Al igual que con otros gráficos del artículo, decidí utilizar parcela gnuplot. En primer lugar, miré el sitio web oficial, donde hay muchos ejemplos. Me alegré mucho cuando encontré el adecuado. ejemplo (Trabajaré un poco con una lima y quedará hermoso, pensé).
gnplot 5.0. Spiderplot en 4 ejes hazlo tu mismo
Copié rápidamente el código y lo lancé. Recibo un error. Lo estoy averiguando. Resultó que tengo un viejo gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) y no puede hacer eso.

Conociendo la flexibilidad de gnuplot, comencé a explorar la World Wide Web y encontré varios ejemplos adecuados en stackoverflow (Doble eje x en un diagrama de araña con Gnuplot и ¿Cómo crear una trama de araña en Gnuplot?) y github (gnuplot-radarchart). Se convirtieron en el punto de partida.

Además, mis manipulaciones con los comandos llevaron a lo siguiente:

0) Desactivar límites

unset border

1) Cree 4 líneas cero: 2 principales y 2 adicionales:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Algunas palabras sobre las líneas cero en documentación. Esta operación le permite llevar los ejes al centro de la imagen. Y se necesitan más para mostrar marcas positivas en ellos.

2) Configurar la visualización de ticks en los ejes:

max = 1.5 # Для гибкости
min = -max
set xtics  axis  0,.5,max in scale 0.5,0.25 mirror norotate  autojustify offset 0.35
set ytics  axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            
set x2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            
set y2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            

Con las marcas en los ejes hay un poco más de configuración.
axis - dónde se ubicarán las garrapatas, en el eje o (borde - en el borde).
Para eje x, que va a la derecha 0,.5,max. El primer número es el inicio de la cuenta regresiva, el segundo es el paso y el tercero es el final de la cuenta regresiva. Por primera vez de 0, y para el resto de 0.5, para que los ceros no interfieran con el origen.

gnplot 5.0. Spiderplot en 4 ejes hazlo tu mismo
gnplot 5.0. Spiderplot en 4 ejes hazlo tu mismo

Mezclando ceros en el centro de coordenadas.
Todos los intervalos *tics configurado como 0,.5,max
sin offset 0.35 para xtics

Ajuste scale 0.5,0.25 mirror añade muescas al eje. Si juegas con los números, su tamaño cambiará.
También ingreso variables max, min, con la ayuda del cual controlo los límites de los ejes del gráfico.
Puede encontrar información adicional sobre cómo configurar ticks en la documentación de la sección xticos.

3) Configurar rangos de ejes:

set xrange  [ min : max ] 
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

Cabe señalar aquí que los 2 ejes parten de min para aumento y 2 ejes - con max disminuir.
Información adicional en la sección Xrango.

4) Dale nombres a los ejes y colócalos bellamente:

set label "H_1" at  0,       max center offset char  2, 0
set label "H_2" at  max+0.1, 0   center offset char -1, 1
set label "H_3" at  0,       min center offset char -2, 0
set label "H_4" at  min,     0   center offset char  0, 1

5) Formar los datos de entrada
Cada gráfico tiene 2 columnas. Número de línea: número de eje, quinta línea para cerrar el ciclo. Columna impar - coordenada x, incluso - y. Debido al hecho de que todos los puntos están ubicados en los ejes, entonces del par (x, y) uno siempre es cero.
Aunque los 4 ejes son positivos, algunos datos se mueven artificialmente a la mitad negativa porque está ubicada en los ejes principales. x и y.

 0  1  0     1.21
 1  0  1.21  0   
 0 -1  0    -1.06
-1  0 -1.19  0   
 0  1  0     1.21 #Дубликат первой точки

resultado
gnplot 5.0. Spiderplot en 4 ejes hazlo tu mismo
código completo

#!/usr/bin/gnuplot -persist
#файл в кодировке cp1251 чтоб русские буквы отображались в eps

set encoding cp1251
set terminal postscript eps enhanced monochrome size 5cm,5cm
set output "./img/eps/fig2.eps"

unset border
set key at -2, 1.5 font 'LiberationSerif, 23' 
set key left top samplen 4.5

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

max = 1.5
min = -max

set xtics  axis  0,.5,max in scale 0.5,0.25 mirror norotate  autojustify offset 0.35 font 'LiberationSerif, 20
set ytics  axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20
set x2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20
set y2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20

set xrange  [ min : max ]
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

set label "H_1" at  0,       max center offset char  2, 0   font 'LiberationSerif, 23'
set label "H_2" at  max+0.1, 0   center offset char -1, 1   font 'LiberationSerif, 23'
set label "H_3" at  0,       min center offset char -2, 0   font 'LiberationSerif, 23'
set label "H_4" at  min,     0   center offset char  0, 1   font 'LiberationSerif, 23'

set style line 1 linetype 1 pointtype 7 linewidth 3 linecolor black
set style line 2 linetype 2 pointtype 7 linewidth 3 linecolor black

plot 'data.csv' using  1:2 title "1" w lp ls 1 ,
     'data.csv' using  3:4 title "2" w lp ls 2

Fuente: habr.com

Añadir un comentario