2013-08-22 7 views
5

Ho difficoltà con l'allineamento dei diversi titoli di tasti quando sono posizionati orizzontalmente, apparentemente a causa delle diverse lunghezze nei titoli.gnuplot - allineamento di titoli di chiavi orizzontali di diversa lunghezza

Avendo due titoli di trama brevi (1a e 4a) e due titoli più lunghi (2a e 3a) lascia uno spazio maggiore tra i due titoli finali (presumibilmente come si impostano gli spazi tra loro tutti con la stessa lunghezza massima della stringa). Ho cercato ma non ho trovato modo di modificare questo.

Un esempio semplificato è mostrato di seguito. qualsiasi suggerimento o aiuto sarà molto apprezzato.

set terminal postscript eps size 5.12,2.3 enhanced color "Helvetica" 12 
set output 'example.eps' 

set title 'Difficulty of Long and Short Title usage in Horizontal Keys' font "Helvetica, 20" 

set key inside bottom center horizontal font "Helvetica, 20" width 1.8 

set ylabel 'ylabel' font "Helvetica, 20" 
set xlabel 'xlabel' font "Helvetica, 20" 
set lmargin screen 0.10 
set rmargin screen 0.95 
set yrange [-1.5:1.5] 

plot sin(x) title 'short', \ 
cos(x) title 'long title 1', \ 
-0.5 title 'long title 2', \ 
0.5 title 'short' w l ls 4 

Il risultato è: enter image description here

+0

Non vedo alcun modo per risolvere questo problema con le attuali opzioni "set key". Hai qualche dipendenza tra un titolo lungo e uno corto? Forse funzionerebbe per avere una chiave '2x2' (' set key maxcols 2') con entrambi i tasti corti nella colonna di sinistra? – Christoph

+0

Mille grazie per la tua risposta. Sfortunatamente sono abbastanza interessato a mantenere l'ordine dei titoli nella trama reale e preferisco tenerli in una riga. Questa è ovviamente una domanda estetica, quindi non la fine del mondo, ma sarebbe bello sapere se è possibile o meno. Ci sono soluzioni alternative? – user2707058

risposta

3

Una soluzione possibile per questo sarebbe di generare i primi tre grafici e l'ultimo con due trama diversi comandi in multiplot modalità:

set terminal postscript eps size 5.12,2.3 enhanced color "Helvetica" 12 
set output 'example.eps' 

set title 'Difficulty of Long and Short Title usage in Horizontal Keys' font "Helvetica, 20" 

set ylabel 'ylabel' font "Helvetica, 20" 
set xlabel 'xlabel' font "Helvetica, 20" 
set lmargin screen 0.10 
set rmargin screen 0.95 
set yrange [-1.5:1.5] 

set bmargin screen 0.15 
set tmargin screen 0.9 

set multiplot 
set key horizontal font "Helvetica, 20" width 1.8 at graph 0.4, graph 0.1 center maxrows 1 
plot sin(x) title 'short', \ 
    cos(x) title 'long title 1', \ 
    -0.5 title 'long title 2' 

unset title 
unset xlabel 
unset ylabel 
unset border 
unset tics 
set key horizontal font "Helvetica, 20" width 1.8 at graph 0.84, graph 0.1 center maxrows 1 
plot 0.5 title 'short' w l ls 4 
unset multiplot 

Tuttavia, ciò richiede qualche modifica:

  • Prima del secondo plot è necessario rimuovere titolo, etichette, etichette e bordo, altrimenti il ​​grafico potrebbe apparire frastagliato a causa del diverso anti-aliasing
  • Per avere la s margini ame è necessario anche insieme fisso tmargin e bmargin
  • È necessario posizionare le chiavi manualmente

Il codice di cui sopra ti dà: enter image description here

Ora si deve giudicare se il suo valore.

-2

Si potrebbe utilizzare il terminale svg ed effettuare le regolazioni aprendo il file in formato SVG Inkscape su.

+0

Oppure usa un terminale png e usa un editor di grafica raster, o postscript, e modifica la sorgente ... Stai scherzando, vero? – DanielTuzes

+0

"Stai ** scherzando, vero?" Che cosa? Ho scritto quella risposta più di due anni fa! Che diavolo stai parlando? –