Matlab画图小指南
我发现隔一段时间不碰MATLAB,等到需要的时候来用,简直觉得寸步难行,很多命令都忘记了,因此在此小小记录一下关于在MATLAB中画图的方方面面(#^.^#)
plot(x,y,'LineWidth',1.5); %线条粗一点
%绘制散点图 sz是尺寸
scatter(x,y,sz,'MarkerEdgeColor',[0 .5 .5],...
'MarkerFaceColor',[0 .7 .7],...
'LineWidth',1.5)
%标题和轴标题 坐标
title('*****','FontSize',18,'FontWeight','bold') %标题加粗 字号
xlabel('*****','FontAngle','italic'); %可以是斜体
ylabel('*****','FontAngle','italic');
axis([400,2500,0,0.6]); %控制范围
set(gca,'YTick',[0:0.1:0.6]); %x轴范围 ,间隔0.1
set(gca,'XTick',[0:500:2500]) ;%y轴范围 ,间隔500
set( gca, 'XTick', [], 'YTick', [] ); %不想要刻度线的时候
set(gca,'xticklabel',[]) %不想要刻度标签的时候
set(gca,'yticklabel',[])
set(gca,'FontName','Times New Roman','FontSize',12); %坐标轴的刻度值字体好看点
set(gca,'linewidth',1.5) ;%图的边框要好看
set(gcf,'color',[1,1,1]) %背景变白
colorbar %加色度条
colormap gray %改变色彩模式
%添加文本标注
text(0.011,0.58,'(d)2016-06-15','FontName','Times New Roman','FontSize',15) ;
text(0.014,0.55,['Y=',num2str(p(1)),'X+',num2str(p(2))],'FontName','Times New Roman','FontSize',11,'FontAngle','italic') ;%num2str后才能显示
%图例
legend([p1 p2],{'Fit line','1:1 Line'},'FontName','Times New Roman','Location','southeast');%这里p1 p2分别代表两条不同的plot画出来的线 此处用到了对象
%输出图形
print('Figure1','-dpdf','-r300'); %输出pdf到当前文件夹,简单线图用pdf或eps(-deps),AI打开编辑
print('Figure2','-djpeg','-r600'); %输出jpg, 复杂、数据量大的彩图用jpg,600ppi
saveas('Figure1',['D:\' Name],'pdf')
%保存图形到当前目录
print('fileformat','-r+resolution','filename')
print('-djpeg','-r600','bon')
print('-djpeg','-r900','ALA&FVC')
name:value 参数设置:



DatetimeTickFormat 的值 | 示例 |
|---|---|
'yyyy-MM-dd' |
2014-04-19 |
'dd/MM/yyyy' |
19/04/2014 |
'dd.MM.yyyy' |
19.04.2014 |
'yyyy年 MM月 dd日' |
2014年 04月 19日 |
'MMMM d, yyyy' |
April 19, 2014 |
'eeee, MMMM d, yyyy HH:mm:ss' |
Saturday, April 19, 2014 21:41:06 |
'MMMM d, yyyy HH:mm:ss Z' |
April 19, 2014 21:41:06 -0400 |
DurationTickFormat 的值 | 说明 |
|---|---|
'y' |
精确定长年的数目。固定长度的一年等于 365.2425 天。 |
'd' |
精确定长天的数目。固定长度的一天等于 24 小时。 |
'h' |
小时数 |
'm' |
分钟数 |
's' |
秒数 |
#加上线性拟合 hold on p = polyfit(x,y,1);%线性拟合 m=0:0.01:0.6; x1=linspace(min(x),max(x)); y1=polyval(p,x1); p1=plot(x1,y1,'-k','linewidth',1.2);
面向对象式画图
所谓面向对象式的绘图,是仿照生活实际而来的,有别于过程式的绘图方式。
- 创建figure对象。摊开空白画布
- 创建axes对象。画布上选一个绘制区域
- 创建line对象。在绘图区画图·
- 创建legend对象。
- 保存图像
各种对象都有不同的属性,绘制精致的图形本质上是学会设置各种属性
Tips:
- 请提前设置好绘图的大小(基于你论文排版需要),所有字体样式。
- 输出pdf/eps/jpg,用上述的print输出,然后用AI打开文件编辑修改,用AI导出为/存储为...
- 将visio/word文档转换为pdf,请使用 Acrobat PDFMaker,不推荐用其自带的另存为或打印为pdf(存在很多细节问题)
f = figure;
P1 = plot(x, y, '-', 'lineWidth', 1.2, 'color', [0.8 0.3 0.5]);%创建图形对象P1
hold on;
P2 = plot(x, y2, '-', 'lineWidth', 1.2, 'color', [0.1 0.3 0.5]);%创建图形对象P2
axis([xmin xmax ymin ymax]) % x y轴范围 1pt = 1/72inch 1 inch = 25.4mm
xlabel('Torque $M_x$ (Nm)','interpreter','latex','FontSize',8); % Latex格式的label
ylabel('******','Fontname', 'Times New Roman','FontSize',8);
width = 240; % 240pt US letter 双栏
set(gcf,'unit','points','PaperUnits','points','PaperPosition',[0,0,240,240/5*4],...
'position',[500 300 240 240/5*4],'color','w','PaperSize',[width, width/5*4]);
set(gca, 'Fontname', 'Times New Roman', 'Fontsize', 8); % 坐标轴句柄,设置坐标轴刻度数字样式
L1 = legend([P1 P2],'Actual torque','Fake');%创建图例对象 设置图例中的名字
set(L1,'Location','northeast','Orientation','vertical',...
'Fontname', 'Times New Roman','FontSize',8,'TextColor','black');% legend 格式
%输出图形到文件
print('Figure1','-dpdf','-r300'); %输出pdf,简单线图用pdf或eps(-deps),AI打开编辑
print('Figure2','-djpeg','-r600'); %输出jpg, 复杂、数据量大的彩图用jpg,600ppi
%————————————————————————————————————————
% 创建figure对象
Fig = figure(...
'Units', 'pixels',...
'Name', 'move2',...
'NumberTitle', 'off',...
'IntegerHandle', 'off');
% 创建axes对象, 设定坐标轴属性
AxesH = axes(...
'Parent', Fig,...
'Xlim', [-10 50],...
'Ylim', [-10 40],...
'XGrid', 'on',...
'YGrid', 'on',...
'DataAspectRatio', [1 1 1],...
'Visible', 'on');
t = linspace(0,45,101)*pi/180;
x = 40*cos(t);
y = 40*sin(t);
realtrace = line(AxesH, x, y,'linewidth',2);
precisetrace = line(AxesH,[x(1) x(end)] ,[y(1) y(end)],...
'color','g',...
'linewidth',2,...
'linestyle','--');
legend(AxesH,[realtrace,precisetrace],...
'真实运动轨迹','精确运动轨迹',...
'location','northwest');
% 指定保存路径和格式
saveas(Fig,['D:\abc\' Fig.Name],'pdf')
%更改坐标轴范围,对于自动计算的最小值或最小值范围,分别使用 -inf 或 inf 来表示。 xlim([0 inf]) ylim([-0.4 0.8]) %反转坐标轴方向:通过设置 Axes 对象的 XDir 和 YDir 属性,使用 gca 命令可访问 Axes 对象。 ax = gca; ax.XDir = 'reverse'; ax.YDir = 'reverse'; box off %删除坐标区图框轮廓
参考:
https://www.zhihu.com/question/269326720/answer/347245807
https://www.zhihu.com/question/269326720/answer/347554215


浙公网安备 33010602011771号