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.
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 (
Además, mis manipulaciones con los comandos llevaron a lo siguiente:
0) Desactivar
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
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.
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
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
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
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