我有一个非常基本的自定义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]);
它在我的八度音程中产生预期结果:
但是当我尝试保存到文件时:
>> saveas(gcf,'out.pdf','pdf');
它悲惨地失败了:
无论输出格式如何(至少在pdf和png之间)都会发生这种情况
这是一个错误吗?是否有解决方法使线条可见?
(注意:我也在matlab中尝试过这段代码,matlab按预期保存文件)
答案 0 :(得分:0)
这确实是一个真正的错误,与octave用于将openGL图形转换为postscript的文件有关,而不是像octave bug submission (bug #49225)那样转换为octave基本身。
从现已关闭的错误报告:
"这个错误已在最新版本的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)并重新编译八度解决了这个错误。