保存到文件

时间:2016-09-28 11:32:41

标签: octave

我有一个非常基本的自定义boxplot函数:

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 Octave版本:4.0.3 GNU Octave许可证:GNU通用公共许可证 操作系统:Linux 3.13.0-37-generic#64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64)
UPDATE: Windows上的Octave 4.0.3产生正确的输出,所以这肯定是linux上的“bug”错误。我将在八度音阶跟踪器上提交一个错误,但如果有人知道在此期间有任何变通办法,我将非常感激。

1 个答案:

答案 0 :(得分:0)

这确实是一个真正的错误,与octave用于将openGL图形转换为postscript的文件有关,而不是像octave bug submission (bug #49225)那样转换为octave基本身。

从现已关闭的错误报告:

  

&#34;这个错误已在最新版本的gl2ps(1.3.9)中得到修复,但linux mint 17.3附带了gl2ps 1.3.8。在linux上,解决方法是编译自己的gl2ps版本。&#34;

我可以确认安装libgl2ps1 (1.3.9-4)libgl2ps-dev (1.3.9-4)并重新编译八度解决了这个错误。