Come mostrare i valori al passaggio del mouse in Gnuplot in SVG?

Aug 24 2020

Dopo aver notato la grafica interattiva di gnuplot suhttps://lwn.net/Articles/723818/mostrando i nomi dei paesi al passaggio del mouse, mi chiedo come mostrare semplicemente i valori dei punti in una trama.

Ad esempio, voglio passare con il mouse sopra la "barra figlia" inhttps://s.natalian.org/2020-08-24/mouse-hover.svge vedere 60 chiaramente.

Tuttavia in questo momento mostra solo le coordinate IIUC. Come posso risolvere questo problema?

set term svg mouse standalone
reset
$heights << EOD
dad                     181
mom                     170
son                     100
daughter        60
EOD

unset key
set boxwidth 0.5
set style fill solid
set yrange [0:*]

plot '$heights' using 2:xtic(1) with boxes
set output '/tmp/mouse-hover.svg'
replot

Risposte

2 theozh Aug 24 2020 at 13:43

Stai cercando hypertext, controlla help hypertext. Devi usare pointper ancorare l'ipertesto. Gioca con il pointsize (qui ps 3) per cambiare l'area in cui il mouse visualizzerà l'ipertesto. Dal momento che probabilmente non vuoi visualizzare un punto colorato nella parte superiore della tua casella, rendi il colore trasparente, ad es lc rgb 0xff123456.

Sfortunatamente, non ho trovato (ancora) nulla nella documentazione di gnuplot su come ingrandire il carattere di questo ipertesto. L'opzione font ",30"non ha alcun effetto. Se lo scopri per favore fammi sapere. Apparentemente nel terminale wxt puoi farlo (vedi gnuplot: Hypertext with monospace? ).

Codice:

### SVG standalone with hypertext
reset session
set term svg mouse standalone enhanced
set output 'tbSVGstandalone.svg'

$heights <<EOD
dad            181
mom            170
son            100
daughter        60
EOD

unset key
set boxwidth 0.5
set style fill solid
set yrange [0:*]

plot '$heights' u 2:xtic(1) w boxes,\
     '' u 0:2:2 w labels hypertext point pt 7 ps 3 lc rgb 0xff123456
set output
### end of code

Risultato: (screenshot di SVG in Firefox. Sembra che non riesca a posizionare un SVG qui, almeno non so come.)