2012-05-29 19 views
13

Mam następujący dat pliku o nazwie ls.dat:gnuplot wykreślenie wielu linii wykresy

# Gnuplot script file for "ls" 
# Version  Removed Added Modified 
8.1  0  0  0 
8.4  0  0  4 
8.5  2  5  9 
8.6  2  7  51 
8.7  2  7  51 
8.8  2  7  51 
8.9  2  7  51 
8.10 2  7  51 
8.11 2  8  112 
8.12 2  8  112 
8.13 2  17  175 
8.17 6  33  213 

Staram się wykreślić z tym:

plot "ls.dat" using 1:2 title 'Removed' with lines,\ 
    "ls.dat" using 1:3 title 'Added' with lines,\ 
    "ls.dat" using 1:4 title 'Modified' with lines 

To daje następujące wykresu:

enter image description here

Spodziewam się trzech działek liniowych, które powinny Wstaję, ale w różnym tempie. Czy ktoś może zobaczyć, co się tutaj dzieje? Jestem pewien, że musi to być coś bardzo głupiego.

+1

Skąd wziąłeś GUI Gnuplot? Jakie polecenie uruchamia to okno? – Jeef

+3

@Jefef Jego gnuplot-X11 w OSX. Możesz również użyć gnuplot w Qt. Zależy, gdzie jest ustawiony typ terminala na to, co otrzymujesz. Mój jest gnuplot-qt. –

+1

Dzięki - tak dawno temu zapomniałem, co robiłem! :) – Jeef

Odpowiedz

23

Myślę, że Twoim problemem są numery wersji. Spróbuj zrobić 8.1 -> 8.01 i tak dalej. To powinno umieścić punkty we właściwej kolejności.

Można również wykreślić numer using X, gdzie X jest numerem kolumny, a nie using 1:X. Spowoduje to wykreślenie tych wartości na osi y i liczb całkowitych na osi X. Wypróbuj:

plot "ls.dat" using 2 title 'Removed' with lines, \ 
    "ls.dat" using 3 title 'Added' with lines, \ 
    "ls.dat" using 4 title 'Modified' with lines 
+0

Możesz również chcieć skali logarytmicznej na osi Y (używając 'set log y'), ponieważ twoje liczby mieszczą się w takim zakresie. – andyras

+0

Świetny połów! Wiedziałem, że musiało to być coś głupiego: P –

+0

Dobra uwaga na temat "używania X" - myślę, że możesz również użyć 'using X: xtic (1)', aby utrzymać swój xtics jako numer wersji, który chcesz, chociaż Nie próbowałem tego ... (+ 1) – mgilson

11

andyras jest całkowicie poprawny. Jeden drobny dodatek, spróbuj tego (na przykład)

plot 'ls.dat' using 4:xtic(1) 

ten zachowa swój plik danych w odpowiedniej kolejności, ale również zachować swoją wersję tic etykiet na osi x.

+0

Tak! Doskonały punkt. – andyras

3

Oprócz powyższych odpowiedzi będzie również działać poniższe polecenie. Publikuję to, ponieważ ma dla mnie więcej sensu. W każdym przypadku jest to 'za pomocą wartości X-kolumna: wartość Y-column'

plot 'ls.dat' using 1:2, 'ls.dat' using 1:3, 'ls.dat' using 1:4 
0

Niezależnie separator w ls.dat, można go podać do gnuplot:

set datafile separator "\t" 
Powiązane problemy