您的位置:首页 > 编程语言 > MATLAB

matlab画图的一些问题【归纳整理前辈的一些东西】

2017-08-04 09:51 656 查看
转自:http://blog.csdn.net/rookiew/article/details/51442347
%用matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚,可以用下列语句操作。
%或许这并不能完全适应您的要求,但是可以吸收该语句中有用的部分,
%可用于代码调图而不需要对每个图都在图形编辑界面用鼠标一项一项地调!
%网上比较流行的一种方式为以下一段代码,并且通过摸索,个人对此进行了完善。

%%%%%%%%%%%%%%%%%%%%%
%plot your figure before
%%%%%%%%%%%%%%%%%%%%%
% figure resize

set(gcf,'Position',[100 100 260 220]);

set(gca,'Position',[.13 .17 .80 .74]);

figure_FontSize=8;

set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');

set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');

set(findobj('FontSize',10),'FontSize',figure_FontSize);

set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
解释:
set(gcf,'Position',[100 100 260 220]);

这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是7cm
set(gca,'Position',[.13 .17 .80 .74]);

这句是设置xy轴在图片中占的比例,可能需要自己微调。
figure_FontSize=8;

set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');

set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');

set(findobj('FontSize',10),'FontSize',figure_FontSize);
这4句是将字体大小改为8号字,在小图里很清晰
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);

4000
这句是将线宽改为2

------------------------------------------------------------
另一个问题:图片的提取
      1.如果只是简单地【file】->【Save As】则图片质量确实不是那么好!
      2.这里推荐另一种提取方式:【Edit】->【Copy Figure】,在Copy之前还应该对【Copy Options...】进行设置,注意要将背景色设置为强制白色,设置之后的选项如图所示:



      3. 可以通过imwrite函数保存图片,例如
FG=getframe(gcf);

imwrite(FG.cdata,'FG.jpg')
另外,控制坐标轴上标度值的字体格式命令:
%--------------------------------------------------------------------------

%设定坐标轴的标度值字体为Times New Roman

clf;

axes1=axes('parent',gcf,'fontname','times new roman');

box(axes1,'on');

hold(axes1,'all');

%--------------------------------------------------------------------------
重调图形大小时所需【通过编辑窗口完成】:
一定要在图形窗口undocked的状态下,【File】->【Export SetUp】进行相关设置,之后应用上述的【Edit】->【Copy Figure】即可;
undock图形窗口的做法为点击图形窗口右上角的小箭头,如图所示:



 
重调图形大小时所需【通过代码完成】:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%获取希望重调图形大小时所需的宽高控制值,需要更改期望的图形宽高值与屏幕的英寸大小值!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Width=7;Height=5;%单位为厘米!!!这里根据需求更改。。。

ScreenSize=14.1; % 屏幕大小,单位为英寸,且应该注意该值通常指对角线的长度,需根据勾股定理计算宽高

ScreenSizeInCM=ScreenSize*2.45; %1英寸等于2.45厘米,长度换算

scrsz = get(0,'ScreenSize');  %得到屏幕分辨率

ScreenWidth=ScreenSizeInCM/sqrt(1+(scrsz(4)/scrsz(3))^2);%屏幕宽,单位为厘米

ScreenHeight=ScreenWidth*scrsz(4)/scrsz(3);%屏幕高,单位厘米

WidthRatio=Width/ScreenWidth;%图形的期望宽度与屏幕宽度的比值

HeightRatio=Height/ScreenHeight;%图形的期望高度与屏幕高度的比值

set(gcf,'Unit','Normalized','Position',[0.1 0.1 WidthRatio HeightRatio]);%设置绘图的大小,无需再到word里再调整大小
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: