如果我在MATLAB中打印一个图形,则图表的背景会变为黑色而不是白色,如下所示:
(但在MATLAB的图形窗口中,它应该是白色的)
这个代码类似于用于打印图形的代码(但将运行复制粘贴):
figure;
set(0,'DefaultAxesFontSize',13)
set(0,'DefaultTextFontSize',13)
set(gcf, 'Renderer', 'painters');
y = 1:100;
plot(y)
xlabel('Some X', 'FontSize', 14)
ylabel('Some Y', 'FontSize', 14)
title('Example', 'FontSize', 15)
legend('some function')
print(gcf,'test1.pdf','-dpdf')
但是,如果我添加以下行,它可以正常工作(当然,在绘图周围的区域有一个浅灰色的背景)
set(gcf, 'color', [0.99 0.99 0.99])
我的MATLAB版本是R2013a(8.1.0.604)
修改
set(gcf, 'InvertHardCopy', 'off');
无法解决问题。
EDIT2:
问题是由HG2-Update引起的。
答案 0 :(得分:1)
复制粘贴代码实际上可以在我的版本(R2013a)上正常工作,但为了确保背景颜色保持打印后的效果,请使用:
set(gcf, 'InvertHardCopy', 'off');
您可以在设置背景颜色下的matlab docs here中查看示例。
因此,要为您的绘图获得不同的背景颜色,请使用:
set(gcf, 'color', 'blue');
set(gcf, 'InvertHardCopy', 'off');
print(gcf,'test1.pdf','-dpdf')
答案 1 :(得分:1)
为了美丽,我也在使用 HG2-Update 黑客。回到 HG1 对我来说是没有选择的。好吧,我没有任何问题,除了一个:直接打印到 .pdf 。这也是你想要做的。这个功能仍然完全搞砸了。
解决方案:使用带有-dsvg
作为矢量图形的图表保存,在 Inkscape 中打开文件并再次保存为pdf,其中导出区域正在绘制复选标记集。
我实际上希望找到一种编写此过程的方法,但没有成功。所以你必须手动完成或等待HG2的最终版本。