Comment tracer un graphique à partir de valeurs de file text? Le file text ressemble à ceci:
location count1 count2 HZ 100 193 ES 514 289 FP 70 137 BH 31 187
Je veux tracer ces valeurs comme un graphique dans le script shell. En abscisse les valeurs des colonnes d'location et des valeurs d'axe y des colonnes count1 et count2.
Solution de travail pour gnuplot v5.0:
Fichier de données d'input loc.dat
:
location count1 count2 HZ 100 193 ES 514 289 FP 70 137 BH 31 187
script gnuplot locations.plt
:
#!/usr/bin/gnuplot -persist set title "Location data" set xlabel "location" set ylabel "count" set grid plot "loc.dat" u (column(0)):2:xtic(1) wl title "","loc.dat" u (column(0)):3:xtic(1) wl title ""
set title "Location data"
– titre principal de la plot
set xlabel "location"
– label de réglage pour l'axe x
set ylabel "count"
– label de réglage pour l'axe y
set grid
– append la grid à la plot
(column(0)):2:xtic(1)
comme la première colonne du file d'input a des valeurs non numériques, nous devons imiter la 1ère colonne numérique, car gnuplot attend uniquement des valeurs numériques valeurs dedans
wl
– signifie avec des lignes , pour joindre tous les points de données avec des lignes
Lancement interactif:
$ gnuplot gnuplot> load "locations.plt"
Résultat rendu:
Utiliser le même file d'input (ex.tsv) et créer un script gnuplot pour mieux contrôler les détails
set style data histogram set style fill solid border -1 plot for [i=2:3] '/dev/stdin' using i:xtic(1) title col
et gnuploting datatables:
gnuplot -p ex.gnu < ex.tsv
nous voyons l'histogramme correspondant.
Pour créer un file png (pour download et afficher dans SO), ajoutez 2 lignes de plus:
set terminal pngcairo enhanced font "arial,10" fontscale 1.0 size 600, 400 set output 'out.png' set style data histogram set style fill solid border -1 plot for [i=2:3] '/dev/stdin' using i:xtic(1) title col