Octave 4.2.2黑色背景绘图:如何让打印文件保留背景色
解决Octave导出PNG时黑色背景变为白色的问题
这是Octave导出图形时很典型的背景色不一致问题,我给你几个针对性的解决办法:
方法1:同时设置图形窗口和坐标轴的黑色背景
你当前的代码只设置了坐标轴(gca)的背景色,但图形窗口(gcf)的默认背景还是白色。终端显示时坐标轴区域覆盖了窗口背景,所以看起来是黑色,但导出时窗口的白色背景会被包含进去。修改代码,同时设置窗口背景:
clear;clf %% circle theta=linspace(0,2*pi,91); xc=cos(theta); yc=sin(theta); fill(0.3*xc,0.3*yc,[0,0.5,0.5]); hold on set(gcf, 'color', [0 0 0]); % 设置图形窗口背景为黑色 set(gca,'color',[0 0 0]) % 设置坐标轴区域背景为黑色
修改后再执行print -dpng black.back.png导出,背景应该就会是黑色了。
方法2:导出时强制指定背景色
如果修改代码后还是不行,可以直接在print命令中添加-backgroundcolor参数,强制指定导出的背景色:
print -dpng -backgroundcolor black black.back.png
也可以用RGB值精确指定:
print -dpng -backgroundcolor [0 0 0] black.back.png
方法3:使用saveas函数替代print命令
Octave 4.2.2版本相对较老,print命令可能存在一些兼容性问题。尝试用saveas函数来导出图形,有时候能解决这类背景色问题:
在代码末尾添加:
saveas(gcf, 'black.back.png', 'png');
这样直接通过函数导出,不需要在终端单独执行print命令。
内容的提问来源于stack exchange,提问作者Clinton Winant
相关产品推荐
相关产品推荐

