0

如果我在 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 引起的。

4

2 回答 2

1

复制粘贴代码实际上在我的版本(R2013a 也一样)上运行良好,但要确保背景颜色保持打印后的样子,请使用以下命令:

set(gcf, 'InvertHardCopy', 'off');

您可以在设置背景颜色下查看matlab 文档中的示例。

因此,要为您的绘图获得不同的背景颜色,请使用:

set(gcf, 'color', 'blue');
set(gcf, 'InvertHardCopy', 'off');
print(gcf,'test1.pdf','-dpdf')
于 2014-08-07T15:42:19.773 回答
1

为了美观,我也在使用HG2-Update hack。回到HG1对我来说是没有选择的。好吧,我没有任何问题,除了一个:直接打印到.pdf。这也是你想要做的。这个功能仍然完全搞砸了。

解决方案:将绘图保存为矢量图形,在Inkscape-dsvg中打开文件并再次保存为 pdf,并在导出区域设置绘图复选标记。

我实际上希望找到一种方法来编写此过程的脚本,但没有成功。所以你必须手动完成或等待 HG2 的最终版本。

于 2014-08-08T11:02:17.037 回答