2011-01-26 9 views
14

Ho un file di dati nel seguente formato.Creazione di tic dell'asse X dalla colonna nel file di dati in Gnuplot

/foo.jsp 1234 
/bar.jsp 6653 
/foobar.jsp 9986 
/bar.jsp 2221 
/foo.jsp 5643 

voglio tracciare il file in Gnuplot in cui i tic sull'asse x è preso dalla prima colonna ei valori sull'asse y dalla seconda colonna. Per illustrare mi piacerebbe che il grafico assomigliasse a questo:

10000 x   x 
5000  x   x   x 
0  /foo.jsp /bar.jsp /foobar.jsp 

Dove le x sono i punti nel grafico.

La migliore che sono riuscito a fare è:

plot "datafile.dat" using 2:xticlabel(1) with points 

Tuttavia, tale comando ripete i tic per ogni valore nella prima colonna (cioè ottengo due /foo.jsp tic sull'asse x). Vorrei che ci fosse un tic unico per ogni stringa univoca nella prima colonna.

risposta

19

Penso che dovresti includere una colonna con solo il numero x, ad esempio foo.jsp = 1, bar.jsp = 2, ecc. E supponiamo di averlo inserito nella prima colonna.

Così il vostro file di dati sarà simile:

1 foo.jsp 1234
2 bar.jsp 6653
3 foobar.jsp 9986
2 bar.jsp 2221
1 foo.jsp 5643

Quindi utilizzare:

plot "datafile.dat" using 1:3:xtic(2) with points 
+0

suppongo che voi dire che dovrei mettere numeri univoci per ogni stringa univoca in th e seconda colonna sopra? Sembra funzionare se ci provo qui. Tuttavia, ciò rievoca la pre-elaborazione per associare ciascuna etichetta a un numero. È fattibile, ma sarebbe meglio se potessimo evitarlo. Grazie per il suggerimento. –

+0

Sarebbe: tracciare "datafile.dat" usando 2: xtic (1) con punti, l'ho controllato e funziona, ma sembra molto simile alla tua soluzione iniziale. – Martin

+0

Inoltre, se vuoi veramente 2 punti sopra xlabel "foo.jsp" dovrai inserire un numero univoco prima di "foo.jsp" – Martin

Problemi correlati