2016-09-28 24 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)并重新编译倍频解决了此问题。