日常记录4-3
一、画图、图像输出figure
1、plot()函数
plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
pie()函数
pie(x)用于绘制数据 x 的饼图,x 可以是向量或者矩阵,x 中的每一个元素将代表饼图的一个扇区,同时饼图中显示各元素总和的比例
image.png
plot3()函数画三维曲线
plot3()函数画三维曲线,最基本的三维图形函数为plot3,它将二维绘图函数plot的有关功能扩展到三维空间,可以用来绘制三维曲线。
image.png
2、grid on 的作用:显示轴网格线
在matlab命令行中输入,如下图显示是没有网格的,
x = linspace(0,10);
y = sin(x);
plot(x,y);
image.png
在上述代码后添加grid on后,显示则会有网格
x = linspace(0,10);
y = sin(x);
plot(x,y);
grid on;
使用grid on;
3、colormap
figure;
imagesc(img);
colormap(parula);%指定热图的模式
image.png
image.png
原理如下:
根据图像中各点像素值的不同,显示不同的颜色。显然,必须要 灰度图才行。当然也可以设置不同的热图模式, 各种热图模式可以自己选择,如下图列表所示。其中parula是默认模式,若不指定,则默认此热图模式。
现在想自定义属于自己的 colormap,且想保存下来,可以重复使用。
方法:
-
edit->Colormap
image.png
操作colormap
值得注意的是,一个figure中有两个colormap。这是自定义colormap中最大的坑
(1)指定 figure 中的colormap;
(2)指定figure中的某一axesaxes的colormap;
image.png
而我们需要的是对figure的colormap进行编辑(也可以对指定的axes的colormap进行编辑,可是如何对指定的axes使用特定的colormap还没有进行研究。)
- 保存当前的colormap
假设编辑过后效果如下,接下来就是保存colormap,以便后续使用
mycolormap = colormap;%把当前的colormap赋给mycolormap
save mycolormap mycolormap %保存
使用自己的colormap
load mycolormap;
figure;
imagesc(img);
colormap(mycolormap)
二、Matlab中axis函数用法总结
axis 主要用来对坐标轴进行一定的缩放操作,其操作命令如下:
- axis([xmin xman ymin ymax])设置当前坐标轴x轴和y轴的限制范围
2.axis([xmin xman ymin ymax zmin zmax cmin cmax])设置x,y,z轴的限制范围和色差范围。
3.v=axis 返回一个行向量,记录了坐标范围
4.axis auto 解除限制,恢复到默认状态
比如下面一个例子
x=0.2*pi/100:2*pi;
y=sin(x);
plot(x,y,'--o')
image.png
使用axis对坐标轴进行缩放
axis([2.5,0.5,0,8])
clear,clc%清理变量和空间
[X,Y]=meshgrid(-1:0.1:1);%绘制网格坐标
A=X+1i*Y; %得到Z=x+iy逆时针旋转,x+iy,exp(x+iy)的坐标表示
Z0=abs(A).*cos(angle(A)+pi/6)+abs(A).*sin(angle(A)+pi/6);%得到Z=x+iy,逆时 针旋转的坐标表示
Z=0.5*Y-1.5*X;%得到Z=x+iy的坐标表示
Z1=exp(X).*cos(Y)+sin(Y).*exp(X);%得到Z=exp(x+iy)的坐标表示
figure
mesh(X,Y,Z) %开始绘Z=x+iy的网格图
axis([-3,3,-3,3,-3,3])%限定坐标范围 注意此处缺少了对Z轴的显示范围,就变成了二维图像
grid off
image.png
clear,clc%清理变量和空间
[X,Y]=meshgrid(-1:0.1:1);%绘制网格坐标
A=X+1i*Y; %得到Z=x+iy逆时针旋转,x+iy,exp(x+iy)的坐标表示
Z0=abs(A).*cos(angle(A)+pi/6)+abs(A).*sin(angle(A)+pi/6);%得到Z=x+iy,逆时 针旋转的坐标表示
Z=0.5*Y-1.5*X;%得到Z=x+iy的坐标表示
Z1=exp(X).*cos(Y)+sin(Y).*exp(X);%得到Z=exp(x+iy)的坐标表示
figure
mesh(X,Y,Z) %开始绘Z=x+iy的网格图
axis([-3,3,-3,3])%限定坐标范围 注意此处缺少了对Z轴的显示范围,就变成了二维图像
grid off
三、关于坐标轴的几个设置
- Matlab画图坐标轴上的刻度线显示与隐藏,默认button
- set(gca,'layer','top')或者---查看,属性检查器,搜索layer,输入top
- 设置刻度线在轴上面或者轴下面, TickDir in/out
- grid on 画出分格线
- grid off 不画分格线
- box on 控制加边框线
- box off 控制不加边框线
设置输出图片文件的尺寸大小,厘米、英寸
文件-->导出设置-->调整大小(8*8)-->设置分辨率
gca
gca是目前的坐标系的所有属性
ax = gca
不画任何图,直接一句ax = gca,gca会自己建立一个笛卡尔坐标系,返还给ax。
随后,我们绘制一个正弦波,用普通的"plot"函数,输出图像,再用"acg"函数修改输出图像的坐标系的属性,将两者输出的图像进行对比。
- 使用"plot"
x = linspace(0,10);
y = sin(4*x);
plot(x,y)
输出的Figure如下:
image.png
- 添加"acg"
x = linspace(0,10);
y = sin(4*x);
plot(x,y)
ax = gca; % current axes
ax.FontSize = 12; % 调整坐标系的数字标度的字体大小
ax.TickDir = 'out'; % 设置刻度线朝向图表的外部(当然可以将 'out'改成 'in',将刻度线改向朝内)
ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
ax.YLim = [-2 2];
image.png
四、subplot
1、简单的例子
把绘图窗口分成两行两列四块区域,然后在每个区域分别作图,基本步骤如下:
subplot(2,2,1); % 2、2、1之间没有空格也可以
%在第一块绘图
subplot(2,2,2);
%在第二块绘图
subplot(2,2,3);
%在第三块绘图
subplot(2,2,4);
%在第四块绘图
运行结果如下:
image.png
2、如下代码:
subplot(2,2,1);
subplot(2,2,3);
subplot(2,2,4);
image.png
3、在多个窗口绘制一个图形。
subplot(2,2,[1,3]);
subplot(2,2,2);
subplot(2,2,4);
image.png
五、word字体中几号字与多少磅的对应关系
- 字号‘八号’对应磅值5
- 字号‘七号’对应磅值5.5
- 字号‘小六’对应磅值6.5
- 字号‘六号’对应磅值7.5
- 字号‘小五’对应磅值9
- 字号‘五号’对应磅值10.5
- 字号‘小四’对应磅值12
- 字号‘四号’对应磅值14
- 字号‘小三’对应磅值15
- 字号‘三号’对应磅值16
- 字号‘小二’对应磅值18
- 字号‘二号’对应磅值22
- 字号‘小一’对应磅值24
- 字号‘一号’对应磅值26
- 字号‘小初’对应磅值36
- 字号‘初号’对应磅值42
六、matlab绘图中,如何使坐标刻度显示特殊字符
x=linspace(0,4*pi,100);
y=sin(x);
plot(x,y)
axis tight
set(gca,'xtick',0:pi/2:4*pi)
set(gca,'xticklabel',{'0' 'pi/2' 'pi' 'pi*3/2' '2*pi' 'pi*5/2' '3*pi' 'pi*7/2' '4*&'})
image.png
七、matlab设置字体大小
- 设置坐标轴上下限:axis([xmin,xmax,ymin,ymax]);
- 设置图片大小:set(gcf,'Position',[x1,y1,dx,dy]);
x1和y1是图的左下角坐标,
dx和dy是图沿着x和y方向的大小,
比如:set(gcf,'Position',[347,162,380,300]);
- 图例的相关设置:
图例中字体及大小:legend('FontName','Times New Roman','FontSize',7,LineWidth',1.5);
图例中各个量及位置:legend('y','zc','location','SouthEast');
- 坐标轴的名称的相关设置:
x轴的名称及字体和大小:xlabel('x(m)','FontName','Times New Roman','FontSize',7);
y轴的名称及字体和大小:ylabel('zc(m) and y(m)','FontName','Times New > -Roman','FontSize',7,LineWidth',1.5);
- 坐标轴的字体及大小设置
set(gca,'FontName','Times New Roman','FontSize',7,'LineWidth',1.5);
- 图名的字体及大小设置
title('yslice:600m;zslice:150m','FontName','Times New Roman','FontSize',7);
- 坐标轴反向
set(gca,'zdir','reverse'); %将坐标轴数值反向
用matlab绘图如何定义坐标轴上的数字字体大小?
- 一:在画完图的Figure窗口里,通过菜单Edit-Axes Properties....-Font-Font Size即可设置。
- 二:用plot命令画完图后,用如下命令:set(gca,'FontSize',20);即可完成菜单同样效果。