2016-09-28 53 views
0

我有箱線圖功能非常基本的定製:八度未能包括陰謀的一部分保存時文件

function myboxplot(LPercentile, Median, RPercentile, Height, LineWidth, BoxHeight, MarkerColour, MarkerSize) 
    hold on 
    plot([LPercentile, RPercentile], [Height, Height], 'linewidth', LineWidth, 'color', 'k', 'linestyle', '-'); 
    plot([LPercentile, LPercentile], [Height - BoxHeight/2, Height + BoxHeight/2], 'linewidth', LineWidth, 'color', 'k', 'linestyle', '-'); 
    plot([RPercentile, RPercentile], [Height - BoxHeight/2, Height + BoxHeight/2], 'linewidth', LineWidth, 'color', 'k', 'linestyle', '-'); 
    plot(Median, Height, 'marker', 'o', 'markersize', MarkerSize, 'markeredgecolor', 'k', 'markerfacecolor', MarkerColour);  
    hold off 
end 

當我把它當作目的,

>> myboxplot(1,2,3,1,3,1,'g',20); hold on 
>> myboxplot(2,3,5,3,3,1,'r',20); hold off 
>> axis([0,6,0,4]); 

它產生預期的結果

           :我倍頻會話中                                                                                  enter image description here

但是,當我試圖保存到一個文件:

>> saveas(gcf,'out.pdf','pdf'); 

它悲慘的失敗:

                                                                                                enter image description here

無論輸出格式如何(至少在pdf和png之間),都會發生這種情況。
這是一個錯誤?有沒有一種解決方法可以讓線條可見?
(注:我自己也嘗試在MATLAB這個代碼,並保存MATLAB如預期的文件)


(使用: GNU倍頻版本:4.0.3 GNU八音許可:GNU通用公共許可證 操作系統:Linux 3.13.0-37-generic#64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64)
UPDATE: Octave 4.0。3在Windows上產生正確的輸出,所以這絕對是一個 「bug」在Linux上的錯誤。我會在八度跟蹤器上提交一個錯誤,但如果有人知道任何解決方法,我將非常感激。

+0

謝謝,安迪!我假設,因爲它在我的Windows安裝上工作,它可能與Linux上的一個庫有關。也許openGL相關的東西。 'fltk'給了我同樣的問題。 'gnuplot'工具包可以工作(但它不尊重我的手動展示位置,但它看起來不太好)。我會在我的筆記本電腦上測試它,它有不同的Linux發行版,看看我得到了什麼... –

+0

Mint 18(= ubuntu 16.04)沒有變化 –

+1

因此,它看起來像這個bug已經修復默認。你可以在GNU/Linux上試用4.2版本的候選版本2嗎?順便說一句,如果你想調試繪圖問題,使用「eps」作爲輸出,因爲它是用於OpenGL工具包的中間格式。 – Andy

回答

0

這實際上是一個真正的錯誤,與按照octave bug submission (bug #49225)將一個庫octave用於將openGL圖形轉換爲postscript而不是八度基本身相關。

從現在關閉錯誤報告:

「此bug已被固定在gl2ps的最新版本(1.3.9),但Linux Mint的17.3附帶gl2ps 1.3.8在Linux上,。解決方法是編譯你自己的gl2ps版本。「

我可以證實,安裝libgl2ps1 (1.3.9-4)libgl2ps-dev (1.3.9-4)並重新編譯倍頻解決了此問題。