在手动设置色块颜色后,我在尝试生成矢量 PDF 图时遇到了问题。
使用调用 set(...) 设置补丁的“ FaceVertexCData ”属性设置补丁面和顶点的颜色后,“savefig”和“saveas”生成的 PDF 输出将被光栅化,不再以矢量形式显示格式。如果不更改“FaceVertexCData”,则不会发生这种情况。
例如,
clear all; close all;
h = bar([1 2 3 ; 3 2 1 ; 3 4 4]);
saveas(gcf, 'barplot.pdf', 'pdf');
savefig('barplot.pdf', 'pdf');
产生一个非常精细的矢量化 PDF。
另一方面,以下代码将产生丑陋的矢量化 PDF 图:
clear all; close all;
h = bar([1 2 3 ; 3 2 1 ; 3 4 4]);
ch = get(h,'children');
set(ch{1},'FaceVertexCData',[1 0 0 ; 0 1 0; 0 0 1]);
set(ch{2},'FaceVertexCData',[1 0 0 ; 0 1 0; 0 0 1]);
set(ch{3},'FaceVertexCData',[1 0 0 ; 0 1 0; 0 0 1]);
saveas(gcf, 'barplot_savefig_FaceVertexCData.pdf', 'pdf');
savefig('barplot_saveas_FaceVertexCData.pdf', 'pdf');
问题的原因是什么?如何解决?欢迎任何提示。
非常感谢。
编辑:MATLAB 版本:OS X 上的 8.0.0.783 (R2012b)