2016-06-05 3 views
3

Ich zeichne ein paar Zeilen in einem bestimmten Datensatz. Einige der Datenpunkte (Spalte 13 im Beispiel unten) sind speziell, ich möchte, dass sie mit einem Kreis markiert und beschriftet werden (die Beschriftungen befinden sich in Spalte 12).Gnuplot: Datenpunkt-Etiketten mit alternierendem Offset (über/unter Datenpunkt)

plot "data.csv" using 0:13 with circles lt 3 fs transparent solid 0.3 noborder notitle,\ 
"data.csv" using 0:13:(sprintf("(%d, %d)", $1, $12)) with labels nopoint offset char 1,-2 notitle,\ 
"data.csv" using 0:6 with lines lt 7 lw 2 

Ich habe bereits herausgefunden, wie das geht. Leider überlappen sich die Labels manchmal, was sie unlesbar macht. Wie kann ich die Etiketten abwechselnd über/unter den Datenpunkten erscheinen lassen? Ich habe versucht, eine Funktion zu definieren, die zwischen -1/1 umschaltet, aber es nicht geschafft hat. Ich versuchte auch, den Offset zufällig zu machen, indem er

hinzufügte, aber das auch nicht funktionierte (kein sichtbarer Effekt).

Unten ist ein Beispiel, wie die aktuelle Version aussieht (mit ein paar mehr gezeichneten Linien habe ich versucht, das Codebeispiel kurz zu halten). Schätze jede Hilfe ...

enter image description here

Antwort

4

versuchen, die Datenpunkte in zwei Sätze mit every zu trennen:

plot "data.csv" using 0:13 with circles lt 3 fs transparent solid 0.3 noborder notitle,\ 
"data.csv" using 0:13:(sprintf("(%d, %d)", $1, $12)) every 2::0 with labels nopoint offset char 1,-2 notitle,\ 
"data.csv" using 0:13:(sprintf("(%d, %d)", $1, $12)) every 2::1 with labels nopoint offset char 1,2 notitle,\ 
"data.csv" using 0:6 with lines lt 7 lw 2 

Dann jedem ungeradeen Datenpunkt hat eine positive Offset; jeder auch Datenpunkt einen negativen Offset (oder ungerade < -> auch ;-))


Hinweis:, wenn Sie wieder verwenden die gleiche Quelle (Datei) in einer durch Komma getrennten Plot Aussage, Sie können '' anstelle von 'data.csv' wiederholen.

+0

Danke Tom, deine Antwort hat etwas geholfen, die Labels sind jetzt oben und unten. Aber irgendwie sind sie auf der x-Achse verschoben, wie auf diesem [Bild] (http://www.bilderload.com/bild/386652/daxlight04A11.png) zu sehen ist. Ist es auch möglich, den Offset ein bisschen zu randomisieren? Denn in meinen Daten besteht die Möglichkeit, dass drei oder mehr dieser Datenpunkte dicht beieinander liegen ... Und das für den Tipp mit dem '' Shortcut :) – werwurm

+0

Habe gerade gemerkt ... das hochgeladene Bild benutzt Offset 23, -2 wie ich herumfummeln mit deinem Vorschlag. Bei Offset 1, -2 sind die Labels noch mehr nach links verschoben – werwurm

+0

Zusatzkommentar: liegt das vielleicht an der Struktur der Datendatei? Nicht jede Zeile in Spalte 13 ist ausgefüllt. Datenstichprobe: 2016-04-04; 9789.77; 9907.05; 9732.82; 9822.08; 9893.85; 9655.64; 10045.40; 9250.40; 9779.70 ;;; 2016-04-05; 9647.81; 9661.30; 9553.17; 9563.36; 9832.69; 9722.31; 9975.32; 9316.25; 9779.70; Kijun Kreuz; neutral \ nSHORT; 9722.309570 2016-04-06; 9582.46; 9635.91; 9505.90; 9624.51; 9809.05; 9722,31; 9862,12; 9316,25; 9779,70 ;;; 2016-04-07; 9648.55; 9702.18; 9484.75; 9530.62; 9791.22; 9791.64; 9952.90; 9327.75; 9779.70; Tenkan/Kijun-Kreuz; schwach \ nSHORT; 9791.219727 '(hoffe, das ist lesbar ...) – werwurm