我有一大組數據點。我嘗試用boxplot來繪製它們,但某些異常值是完全相同的值,並且它們在一行旁邊表示。我發現How to set the horizontal distance between outliers in gnuplot boxplot,但它並沒有太多幫助,因爲它顯然是不可能的。如何在gnuplot中對boxplot異常值進行組合
是否可以將異常值組合在一起,打印一個點,然後在旁邊的括號內打印一個數字以指示有多少個點?我認爲這會使圖形更具可讀性。
有關信息,我有一個x值的三個boxlot和一個圖中的六個時間。我正在使用gnuplot 5,並且已經使用了分號,這不會再減少距離。 我希望你能幫助!
編輯:
set terminal pdf
set output 'dat.pdf'
file0 = 'dat1.dat'
file1 = 'dat2.dat'
file2 = 'dat3.dat'
set pointsize 0.2
set notitle
set xlabel 'X'
set ylabel 'Y'
header = system('head -1 '.file0);
N = words(header)
set xtics ('' 1)
set for [i=1:N] xtics add (word(header, i) i)
set style data boxplot
plot file0 using (1-0.25):1:(0.2) with boxplot lw 2 lc rgb '#8B0000' fs pattern 16 title 'A'
plot file1 using (1):1:(0.2) with boxplot lw 2 lc rgb '#00008B' fs pattern 4 title 'B'
plot file2 using (1+0.25):1:(0.2) with boxplot lw 2 lc rgb '#006400' fs pattern 5 title 'C'
for [i=2:N] plot file0 using (i-0.25):i:(0.2) with boxplot lw 2 lc rgb '#8B0000' fs pattern 16 notitle
for [i=2:N] plot file1 using (i):i:(0.2) with boxplot lw 2 lc rgb '#00008B' fs pattern 4 notitle
for [i=2:N] plot file2 using (i+0.25):i:(0.2) with boxplot lw 2 lc rgb '#006400' fs pattern 5 notitle
這有什麼代碼已經到位,以實現它的最佳方式?
謝謝!這個解決方案非常好。唯一的問題是,它打印出每一點,即使那些原本沒有點的地方,如果你用boxplot打印它。你還可以看看我的原始文章中的編輯?我發佈了我現在使用的東西,而且我不得不說我顯然不適應Gnuplot。 ;)是否也可以改變點的大小和數字的大小? PS:它需要在第二個代碼片段中是upper_limit和lower_limit。 ;) – Patrick 2015-04-01 10:09:41
當繪製標籤時,你必須檢查計數的數量是否> 0,我編輯了答案。你可以像往常一樣改變分數。 'ps 2',你也可以使用'font'選項來繪製'標籤',比如'plot ... with labels font',12''。 – Christoph 2015-04-01 11:06:38
出於測試目的,我使用了pdf終端,但我想在最後使用它與cairolatex。我意識到,cairolatex的點和標籤根本不打印。你知道一個方法來繞過它嗎? – Patrick 2015-04-01 13:40:35