2016-05-29 17 views
1

Ich habe mehrere Datendateien, für die ich eine einzelne Figur zeichnen möchte. Jede der Dateien enthält eine Spalte mit zwei Variablen: true und false. Ich möchte Boxplot für jeden dieser Werte zeichnen, damit sie verglichen werden können. Beispieldatendatei ist unten angegeben:GNUPLOT: boxplots variable Linienart/Farben

0.6,true 
0.7,true 
0.5,false 
0.4,true 
.. 

ich komme mit folgendem Code:

plot inputFile1 using (1):($4):(0.3):3 title 'A' , \ 
inputFile2 using (3):($4):(0.3):3 title 'B' 

Die folgenden Abbildung erzeugt: enter image description here

Allerdings würde Ich mag es gestalten, so dass alle Boxplots mit "true" Variablen haben eine bestimmte Linienart/Farbe und Boxplots mit "false" Variable haben eine andere spezifische Linienart/Farbe. Darüber hinaus möchte ich im Titel die Form von True und False zeigen, aber auf x-xis möchte ich File A und B für jedes wahre, falsche Paar haben.

Jede Hilfe in dieser Hinsicht würde sehr geschätzt werden.

Vielen Dank im Voraus.

Antwort

1

Mit Ihrer aktuellen Datendatei müssten Sie erkennen, ob die zweite Spalte true oder false enthält, und entsprechend handeln. Ich bin jedoch nicht sicher, gnuplot kann Zeichenfolgen aus einer Datendatei verarbeiten.

Wenn Sie Ihre Datei verarbeiten und die true oder false durch 1 oder 0 ersetzen, können Sie die folgende Zeile anpassen:

plot [0:6] "+" using 0:($0/2.):(0.3):0:xtic((int($0)%2)==0?"true":"false") w errorb lc variable 

Hier ist die vierte Nummer in der using Liste definiert die Farbe, mit $0 der Farbänderungen für jede Zeile der Datei, aber wenn die Farbnummer in einer Spalte Ihrer Datei ist, dann verwenden Sie diese Spalte. Ersetzen Sie das "+" durch Ihre Datei und die ersten zwei Zahlen in using durch die Parameter, die für Ihren Plottstil benötigt werden. Der Befehl xtic verarbeitet einige Spalten in der Datei (hier die Zeilennummer $0) und beschriftet den Wert abhängig vom Wert (siehe help ternary).

Beachten Sie, dass Ihr MWE nicht wie erwartet funktioniert, bitte ändern Sie es, wenn Sie eine genauere Antwort wünschen.

+0

Danke für Ihre Antwort. Würdest du es bitte gerne einmal erklären "[0: 6]" + "mit 0: ($ 0/2.) :(0.3): 0: xtic"? – mas

+0

das ist getan, denken Sie daran, ein funktionierendes MWE zu geben, wenn Sie detailliertere Antworten wünschen. – Joce