2016-05-29 53 views
1

我有多個數據文件,我想繪製一個數字。每個文件都包含一個包含兩個變量的列:true和false。我想爲每個這些值繪製boxplot,以便它們可以進行比較。GNUPLOT:boxplots可變線條樣式/顏色

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

我想出了下面的代碼:

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

這產生如下圖所示:數據文件的示例下面給出enter image description here

不過,我想自定義它,從而所有具有「真」變量的箱圖都有一種特定的線條樣式/顏色,帶有「假」變量的箱型圖具有另一種特定的線條樣式/顏色。 此外,我想在標題中顯示真假的形狀,但是,在x-xis上,我希望對每個真假對都有文件A和B.

在這方面的任何幫助將不勝感激。

感謝您的期待。

回答

1

使用您當前的數據文件,您需要檢測第二列是否包含truefalse並相應採取行動。但是,我不確定gnuplot可以處理來自數據文件的字符串。

如果處理您的文件,並通過1或0替換truefalse,那麼你就可以適應以下行:

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

在這裏,在using列表中的第4個數字定義的顏色,與$0的文件每一行的顏色會發生變化,但如果顏色編號位於文件的一列中,則使用該列。用您的文件和using中的前兩個數字替換您的打印樣式所需參數的「+」。命令xtic處理文件中的某一列(這裏是行號$0),並根據值標記文本(請參閱help ternary)。

請注意,您的MWE不能按原樣工作,請修改它,如果您想要更精確的答案。

+0

感謝您的回答。請您特別解釋一下這個「[0:6]」+「是否使用0:($ 0/2。):(0.3):0:xtic」? – mas

+0

完成後,如果您想要更詳細的答案,請記住給MWE工作。 – Joce