matlab 填充绘图,奇怪的属性
matlab fill plotting, strange properties
更新:我已经在 2014a 的 windows 8 机器上重现了这个问题。
我正在尝试使用 MATLAB(2014a,OSX Yosemite)生成大量具有不同填充颜色的正方形图像。我发现填充命令是完成此操作的最简单方法——我只需设置正方形四个角的坐标和填充颜色的 RGB 值。
然而,它并没有那么漂亮。想象一下,我只想制作三张图像,灰度值为 0.79、0.80 和 0.81。
我使用了这个代码:
figure
for fillvalue = [0.79 0.80 0.81]
% generate stimulus
fill([-1 1 1 -1],[-1 -1 1 1],[fillvalue fillvalue fillvalue])
% set axis properties
axes('Position',[.005 .005 .99 .99],'xtick',[],'ytick',[],...
'handlevisibility','off','linewidth',2, 'visible', 'off')
axis off
% set figure properties
set(gcf, 'PaperUnits','points', 'PaperPosition',...
[0, 0, 50, 50],'papersize',[50, 50])
% save
filename = char([num2str(fillvalue) '.png']);
print(gcf,'-dpng', filename)
end
以下是文件,顺序为 (0.79, 0.80, 0.81):
Matlab在0.79和0.81上做得不错,但0.80肯定不对。同样,我不确定为什么我只在右下角得到边框。
有人知道这是怎么回事吗?
我认为这是因为图形的默认背景颜色是 [.8 .8 .8]
,所以出于某种原因,当您将图形的内容打印到文件时,MATLAB 会创建一个白色矩形...
输入:
get(0,'DefaultFigureColor')
你会得到:
ans =
0.8000 0.8000 0.8000
为图形分配不同于默认颜色的颜色似乎对我有用(OSX Mountain Lion 上的 Matlab R2013a):
例如:
hFig = figure('Color',[.2 .2 .2]) %// <------ Add a background color
======================
for fillvalue = [0.79 0.80 0.81]
% generate stimulus
fill([-1 1 1 -1],[-1 -1 1 1],[fillvalue fillvalue fillvalue])
% set axis properties
axes('Position',[.005 .005 .99 .99],'xtick',[],'ytick',[],...
'handlevisibility','off','linewidth',2, 'visible', 'off')
axis off
% set figure properties
set(gcf, 'PaperUnits','points', 'PaperPosition',...
[0, 0, 50, 50],'papersize',[50, 50])
% save
filename = char([num2str(fillvalue) '.png']);
print(gcf,'-dpng', filename)
end
更新:我已经在 2014a 的 windows 8 机器上重现了这个问题。
我正在尝试使用 MATLAB(2014a,OSX Yosemite)生成大量具有不同填充颜色的正方形图像。我发现填充命令是完成此操作的最简单方法——我只需设置正方形四个角的坐标和填充颜色的 RGB 值。
然而,它并没有那么漂亮。想象一下,我只想制作三张图像,灰度值为 0.79、0.80 和 0.81。
我使用了这个代码:
figure
for fillvalue = [0.79 0.80 0.81]
% generate stimulus
fill([-1 1 1 -1],[-1 -1 1 1],[fillvalue fillvalue fillvalue])
% set axis properties
axes('Position',[.005 .005 .99 .99],'xtick',[],'ytick',[],...
'handlevisibility','off','linewidth',2, 'visible', 'off')
axis off
% set figure properties
set(gcf, 'PaperUnits','points', 'PaperPosition',...
[0, 0, 50, 50],'papersize',[50, 50])
% save
filename = char([num2str(fillvalue) '.png']);
print(gcf,'-dpng', filename)
end
以下是文件,顺序为 (0.79, 0.80, 0.81):
Matlab在0.79和0.81上做得不错,但0.80肯定不对。同样,我不确定为什么我只在右下角得到边框。
有人知道这是怎么回事吗?
我认为这是因为图形的默认背景颜色是 [.8 .8 .8]
,所以出于某种原因,当您将图形的内容打印到文件时,MATLAB 会创建一个白色矩形...
输入:
get(0,'DefaultFigureColor')
你会得到:
ans =
0.8000 0.8000 0.8000
为图形分配不同于默认颜色的颜色似乎对我有用(OSX Mountain Lion 上的 Matlab R2013a):
例如:
hFig = figure('Color',[.2 .2 .2]) %// <------ Add a background color
======================
for fillvalue = [0.79 0.80 0.81]
% generate stimulus
fill([-1 1 1 -1],[-1 -1 1 1],[fillvalue fillvalue fillvalue])
% set axis properties
axes('Position',[.005 .005 .99 .99],'xtick',[],'ytick',[],...
'handlevisibility','off','linewidth',2, 'visible', 'off')
axis off
% set figure properties
set(gcf, 'PaperUnits','points', 'PaperPosition',...
[0, 0, 50, 50],'papersize',[50, 50])
% save
filename = char([num2str(fillvalue) '.png']);
print(gcf,'-dpng', filename)
end