日常记录4-3

2022-04-05  本文已影响0人  木火_magic

一、画图、图像输出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,且想保存下来,可以重复使用。
方法:
  1. edit->Colormap


    image.png

操作colormap
值得注意的是,一个figure中有两个colormap。这是自定义colormap中最大的坑
(1)指定 figure 中的colormap;
(2)指定figure中的某一axesaxescolormap;

image.png
image.png

而我们需要的是对figure的colormap进行编辑(也可以对指定的axes的colormap进行编辑,可是如何对指定的axes使用特定的colormap还没有进行研究。)

  1. 保存当前的colormap
    假设编辑过后效果如下,接下来就是保存colormap,以便后续使用
mycolormap = colormap;%把当前的colormap赋给mycolormap
save mycolormap mycolormap %保存

使用自己的colormap

load mycolormap;
figure;
imagesc(img);
colormap(mycolormap)

二、Matlab中axis函数用法总结

axis 主要用来对坐标轴进行一定的缩放操作,其操作命令如下:

  1. 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

三、关于坐标轴的几个设置

设置输出图片文件的尺寸大小,厘米、英寸

文件-->导出设置-->调整大小(8*8)-->设置分辨率

gca

gca是目前的坐标系的所有属性

ax = gca

不画任何图,直接一句ax = gca,gca会自己建立一个笛卡尔坐标系,返还给ax。
随后,我们绘制一个正弦波,用普通的"plot"函数,输出图像,再用"acg"函数修改输出图像的坐标系的属性,将两者输出的图像进行对比。

x = linspace(0,10);
y = sin(4*x);
plot(x,y)

输出的Figure如下:


image.png
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设置字体大小

    1. 设置坐标轴上下限:axis([xmin,xmax,ymin,ymax]);
    1. 设置图片大小:set(gcf,'Position',[x1,y1,dx,dy]);
      x1和y1是图的左下角坐标,
      dx和dy是图沿着x和y方向的大小,
      比如:set(gcf,'Position',[347,162,380,300]);
    1. 图例的相关设置:
      图例中字体及大小:legend('FontName','Times New Roman','FontSize',7,LineWidth',1.5);
      图例中各个量及位置:legend('y','zc','location','SouthEast');
    1. 坐标轴的名称的相关设置:
      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);
    1. 坐标轴的字体及大小设置
      set(gca,'FontName','Times New Roman','FontSize',7,'LineWidth',1.5);
    1. 图名的字体及大小设置
      title('yslice:600m;zslice:150m','FontName','Times New Roman','FontSize',7);
    1. 坐标轴反向
      set(gca,'zdir','reverse'); %将坐标轴数值反向
用matlab绘图如何定义坐标轴上的数字字体大小?
  • 一:在画完图的Figure窗口里,通过菜单Edit-Axes Properties....-Font-Font Size即可设置。
  • 二:用plot命令画完图后,用如下命令:set(gca,'FontSize',20);即可完成菜单同样效果。
上一篇下一篇

猜你喜欢

热点阅读