MATLAB出图高质量

使用命令print,进行打印或者图像保存。

详见MATLAB帮助文件,print。

语句格式:

print 
print('argument1','argument2')
print(handle,'filename')
print argument1 argument2 ... argumentn

filename不包含扩展名。
-ddriver打印驱动器类型,可以默认。
-dformat文件保存的格式:pdf:dpdf,png:-dpng,emf:-dmeat,tiff:-dtiffordtiffn,tiff eps预览格式:-tiff
-dformat filename 保存的格式和文件名
-rnumber:分辨率,默认90simulink,150figure,压缩是为864。
-zbuffer:文件压缩格式,还有-opengl-painters

有关出图大小的问题,参见printing and exporting use cases。

  1. 确定纸张的尺寸
    set(gcf,'PaperUnits','centimeters');
    set(gcf,'PaperSize',[17.5 12.5]);

  2. 将图片放置于纸张中间
    1)设置纸张的单位。
    set(gcf,'PaperUnits','inches')
    2)返回目前纸张的大小。
    papersize=get(gcf,'PaperSize')
    3)初始化图片的大小。
    width=5.5;
    height=3;
    4)计算水平居中放置时的坐标。
    left=(papersize(1)-width)/2
    bottom=(papersize(2)-height)/2
    5)设置图片尺寸并输出。
    myfiguresize=[left,bottom,width,height];
    set(gcf,'PaperPosition',myfiguresize);
    print

个人出图案例:
对比两种特征提取方法结合六种机器学习算法训练集和测试集准确率。

代码:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Function:小论文判别结果对比图,双柱形图绘制
% Author:Yang
% Time:2018-4-5
% Software: Matlab 2014a
% 输出格式tif,宽度20cm,高度16cm,分辨率为600dpi。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% I.清空环境变量
clear all
%close all
clc

%% II.载入数据
%输入数据
data_pca=[95.17 95;92.17 97;87.33 96;90.17 97;90 96;88.52 95];
data_spa=[96.67 94.5;92.67 96.5;90 97;90.5 97.5;90.33 97.5;88.17 96.9];
data_train=[data_pca(:,1) data_spa(:,1)];
data_test=[data_pca(:,2) data_spa(:,2)];
method=['DT  ';'KNN ';'NB  ';'LDA ';'SVM ';'BPNN']; %方法标签


%% III. 设置图片格式
figure1 = figure;
set (gcf,'Position',[400,100,1000,800],'Color',[1 1 1]); %显示图片在屏幕中的起始点和长宽,背景颜色为白色。

%% III-1. 设置子图1
subplot1=subplot(2,1,1,'Position',[0.09 0.57 0.88 0.42]); % 设置图片的摆放位置,尽可能占满,参数需要手动试验,坐标位置为比率。

% 绘制条形图1
h1=barh(data_train,1); %绘制横向的条形图
set(gca,'LineWidth',1); %设置坐标轴线的宽度
set(gca,'YTicklabel',method); %将纵坐标设置为方法名称
set(gca,'XTicklabel',{'85%','90%','95%','100%'});%横坐标设置为准确率%
set(gca,'FontSize',10); %坐标轴字体为10号
axis([85 100 0.5 6.5]); %坐标轴量程范围

xlabel('Accurcay of training set','Fontsize',11); %横坐标标签
ylabel('Statistic learning method','Fontsize',11); %纵坐标标签
set(h1(1),'LineWidth',1); %设置柱形图线宽,与图例legend相关联,此为柱子1
set(h1(2),'LineWidth',1); %设置柱形图线宽,与图例legend相关联,此为柱子2
legend1=legend('PCA','SPA'); %图例的标签设置
set(legend1,'EdgeColor',[1 1 1]); %去掉图例的边框,设置与背景色相同
set(legend1,'Fontsize',10); %设置图例字体大小
for i=1:6
    text(data_train(i,1)+0.2,i-0.18,strcat(num2str(data_train(i,1)),'%'),'FontSize',10); %为柱子加标签,显示其数值,带%
    text(data_train(i,2)+0.2,i+0.18,strcat(num2str(data_train(i,2)),'%'),'FontSize',10); %为柱子加标签,显示其数值,带%
end

%颜色设置,RBG颜色模型,范围[0,1]
cm=[
   [1 0 1]
   [0 1 0]
    ];
colormap(cm);

%% III-2. 设置子图2
subplot2=subplot(2,1,2,'Position',[0.09 0.07 0.88 0.42]);
h2=barh(data_test,1);

set(h2(1),'LineWidth',1);% 设置柱形图线宽,与图例legend相关联
set(h2(2),'LineWidth',1);
set(gca,'LineWidth',1); 
set(gca,'YTicklabel',method);set(gca,'FontSize',10);set(gca,'YTick',[1:6]);
set(gca,'XTicklabel',{'85%','90%','95%','100%'});set(gca,'FontSize',10);
axis([85 100 0.5 6.5]);
xlabel('Accurcay of test set','fontsize',10);
ylabel('Statistic learning method','fontsize',10);
for j=1:6
    text(data_test(j,1)+0.2,j-0.18,strcat(num2str(data_test(j,1)),'%'),'FontSize',10);
    text(data_test(j,2)+0.2,j+0.18,strcat(num2str(data_test(j,2)),'%'),'FontSize',10);
end


%颜色设置
cm=[
   [1 0 1]
   [0 1 0]
   ];
colormap(cm);

text('Parent',subplot1,'String','(a)','Position',[83.5 6.4 0],'FontSize',12);
text('Parent',subplot2,'String','(b)','Position',[83.5 6.4 0],'FontSize',12);


%% VI.结果保存和输出
% 主要根据设置的图的大小确定,默认状态下好像为20cm宽,与figure没有太多关系。

% %设置纸张尺寸
% set(gcf,'PaperUnits','centimeters');
% set(gcf,'PaperSize',[15 12]);


%设置纸张的单位。
set(gcf,'PaperUnits','centimeters');
%返回目前纸张的大小。
papersize=get(gcf,'PaperSize');
%初始化图片的大小。
width=20;
height=16;
%计算水平居中放置时的坐标。
left=(papersize(1)-width)/2;
bottom=(papersize(2)-height)/2;
%设置图片尺寸并输出。
myfiguresize=[left,bottom,width,height];
set(gcf,'PaperPosition',myfiguresize);

%输出
print  -zbuffer -r600 -dtiff figure7; % 压缩格式,分辨率,保存格式,文件名
savefig('figure7.fig');

结果图:


tiff结果图

由于字体和布局,显示的fig格式线条会细小一些,之前手动设置和输出时设置的线条宽为2。如下图:


fig输出图

就大部分论文结果而言,训练集的结果会比测试集的要高,然而我的则相反。有关训练集结果输出的问题,我很想听听有经验的人的指点。因为每种方法的过程不太一样,我所采用的是利用训练集样本重新进行了预测,然后输出结果,这样的方法是一种回判,不知道能不能用来评估模型的效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容