当我将饼图保存为pdf时,pdf具有未知的白线。为简化问题,我将代码修改为最通用的形式,如下所示。
clc;
h=pie(1);
%set the pie chart color to black
h(1).FaceColor = 'k';
我选择使用黑色的原因是白色线条与黑色背景形成鲜明对比。请参阅随附的pdf图。
我也在这个链接中发现了一个类似的问题:weird artifacts when saving pie chart as pdf。目前还没有提供解决方案。
我的系统配置:macOS Sierra版本10.12。 Matlab R2016b。
欢迎任何输入。谢谢。
答案 0 :(得分:2)
在您致电pie
之后,我发现添加了这些一个,并解决了这个问题:
set(gcf,'renderermode','manual');
set(gcf,'renderer','opengl');
set(gcf,'renderer','opengl','renderermode','manual');
这很奇怪,因为如果你尝试get(gcf,'renderer')
它会显示它是opengl
(至少在我的机器上),但它被解释为画家算法,直到渲染模式切换到手动。如果将渲染器设置为opengl,则会自动发生这种情况,或者您只需将渲染模式设置为手动,然后它(MATLAB)实际上会查看渲染器属性。
这是概念证明
clc;
h=pie(1);
%set the pie chart color to black
h(1).FaceColor = 'k';
% set(gcf,'rendererMode','manual');
set(gcf,'renderer','opengl','renderermode','manual')
saveas(gcf,'pie.pdf');
答案 1 :(得分:1)
我之前遇到过这种情况,我不是100%因为它的原因,我认为它可能是MATLAB如何创建矢量文件的组合,以及PDF查看器如何对图像进行抗锯齿处理。我被告知你可以通过更改MATLAB使用的渲染器来解决这个问题,但我个人并没有太多运气。
作为一种解决方法,您可以尝试将图形保存为SVG,在像inkscape这样的矢量编辑器中打开并复制图形两次(根据this网站)。然后,您可以将Inkscape中的数字保存为PDF文件。
答案 2 :(得分:0)
我在2015年版的Matlab中遇到了同样的问题,但该问题似乎在旧版本中消失了。尝试使用Matlab 2014或更低版本。