删除轴时,MATLAB PDF输出不正确
我正在尝试从一个图形生成一个PDF文件,并在MATLAB中按比例缩放。我试图隐藏图形中的轴,因为我基本上只是绘制一组矩形(一个棋盘)。每当我试图隐藏轴时(无论是删除轴时,MATLAB PDF输出不正确,matlab,pdf,postscript,Matlab,Pdf,Postscript,我正在尝试从一个图形生成一个PDF文件,并在MATLAB中按比例缩放。我试图隐藏图形中的轴,因为我基本上只是绘制一组矩形(一个棋盘)。每当我试图隐藏轴时(无论是set(gca,'Visible','off');还是axis off;),PDF输出都会被剪裁(我的棋盘上只显示一个矩形)。你知道为什么关掉斧头会把事情搞砸吗 这是代码--我只是想生成一个棋盘来缩放 % Create a figure to get paper sizes clear all; clf; % Use centimetr
set(gca,'Visible','off');
还是axis off;
),PDF输出都会被剪裁(我的棋盘上只显示一个矩形)。你知道为什么关掉斧头会把事情搞砸吗
这是代码--我只是想生成一个棋盘来缩放
% Create a figure to get paper sizes
clear all;
clf;
% Use centimetres
set(gcf,'PaperUnits','centimeters');
% Get the paper dimensions
dims = get(gcf,'PaperSize');
inner_corner_x = 8;
inner_corner_y = 11;
margin = 2.5; % cm
dims = dims - 2*margin;
sz = round(min((dims(1)) / (inner_corner_x + 2), (dims(2)) / (inner_corner_y + 2)));
for i = 0:inner_corner_y
for j = 0:inner_corner_x
if mod(i + j, 2) == 0
color = 'k';
else
color = 'w';
end
rectangle(...
'Position', [j * sz i * sz sz sz],...
'FaceColor', color,...
'EdgeColor', color);
end
end
% PROBLEM IS HERE
% Comment this line out to have ugly output, but at least all chessboard blocks show...
axis off;
set(gca,'LooseInset', get(gca,'TightInset'));
set(gcf,'PaperPositionMode','manual');
set(gcf,'PaperPosition',[margin margin dims]);
print -dpdf figure1
我最终手工编写了一个PostScript文件来生成棋盘。这个特定的脚本生成一个8.5英寸x 11英寸的PDF文件,其中包含7x9个框。您以点为单位设置了框大小(本例中72为1”)。很抱歉,这个答案与问题无关,但我真的无法获得如此简单的图形所需的良好输出,因此我手动完成,效果很好
%!PS
/ptsx 8.5 72 mul def
/ptsy 11 72 mul def
/boxx 7 def
/boxy 9 def
/sz 72 def
boxx sz mul ptsx gt {(Size too wide for page!) print quit} if
boxy sz mul ptsy gt {(Size too tall for page!) print quit} if
/marginx ptsx boxx sz mul sub 2 div def
/marginy ptsy boxy sz mul sub 2 div def
0 0 0 setrgbcolor
marginx marginy translate
/xval 0 def
/yval 0 def
/xon true def
/yon true def
0 1 boxy 1 sub {
0 1 boxx 1 sub {
newpath
xval yval moveto
xval yval sz add lineto
xval sz add yval sz add lineto
xval sz add yval lineto
xon {fill} if
/xval xval sz add def
/xon xon not def
} for
/xval 0 def
/yval yval sz add def
/yon yon not def
/xon yon def
} for
Matlab的图形导出非常混乱。我讨厌它。这不是一个直接的答案,但我通常最幸运的是先导出到EPS/EPSC,然后使用Illustrator清理图像边界并转换为PDF。但这只有在您有可以读取封装的postscript文件的辅助程序的情况下才有效。请尝试使用。
export_fig
似乎忽略了我所有的纸张大小设置。它似乎不支持以给定的比例导出,或者至少我找不到它的控件…如果你有很多图形,这将是一件痛苦的事情,但使用图形窗口中的“文件/另存为”。我用你的代码这样做会得到很好的结果。