之前一直用Python的matplotlib.pyplot包画图,很少用matlab,这次作业想用一下发现很多调整画图版式的函数都不太会用,网上系统一点的代码也不多,于是写一篇这个记录一下。
- 母函数plot
plot(lambda,R,'color','#666600','linewidth',1);
%意思就是以lambda为x轴,R为y轴画折线图
%颜色为16进制的#666600 折现宽度为1
%还有很多的Name,Value元组 如linestyle marker两个常用的 详情doc plot查看
- 图框大小设置
%gcf是图框设置
set(gcf, 'Position', [0 0 1600 900]);
%position指figure图框的位置设置 这个4个数字的数组的后两位就是分辨率设置
%1600 900即为长1600px 宽900px
%前两位是在显示屏的位置 默认0 0即可
- 坐标轴设置
%首先是坐标轴的显示范围
xlim([200,2600])
ylim([0,1])
%这个数组就是范围大小
%然后是坐标轴的标题
xlabel("波长(纳米)",'fontsize',15,'fontname','宋体','fontweight','bold')
ylabel("反射率(%)",'fontsize',15,'fontname','宋体','fontweight','bold')
%标题名称放在第一个 fontsize是字体大小 fontname是字体选择 fontweight是字体粗细
%还有很多其他的属性 可以doc xlabel看看
%接着是刻度设置
xticks(200:150:2600)
yticks(0:0.1:1)
%这样x轴就是从200到2600 每隔150为一个刻度
%y轴式从0到1 每隔0.1为一个刻度
%最后是坐标轴的标签 gca就是边框的意思
set(gca,'TickLabelInterpreter','latex'); %这个是设置字体为latex显示
set(gca,'XTick',[freqCentLog([21 28])]); %x轴的两个刻度变成21 28
set(gca,'Xticklabel',{0.4 4}); %但显示是0.4和4的文字
set(gca,'YTick',[MelScale([1 7 14 21 28])]); %同理如上
set(gca,'Yticklabel',{'$0$','${m_{\pi_1}}$','${m_{\pi_2}}$','${m_{\pi_3}}$','${m_N}$'});
% $符号是latex公式的写法
- 标题设置
title("混合草地反射波谱",'fontsize',17,'fontname','宋体','fontweight','bold')
%直接title就可以了 fontsize是字体大小 fontweight是字体粗细
- 图例设置
h=legend("混合草地反射率");
set(h,'fontname','宋体','fontsize',14,'fontweight','bold','location','northwest')
legend('boxoff')
%legend写图例的名称
%后面set设置图例的字体大小位置 location这个需要自己设置 详情doc legend
%legend('boxoff')把图例外围的边框消除
- 边框设置
%gca是边框设置
set(gca,'fontname','Times','fontsize',13,'fontweight','bold')
set(gca,'linewidth',1.2)
%其他都是元组属性 详情可查看doc gca
- 保存设置
img=gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './混合草地.png')%即可得到对应格式和期望dpi的图像
%获取句柄后print函数保存 600指dpi 后面是名字命名 格式可以调整
按照上述设置可以得到出图如下: