画图之前建议先想好自己要画什么样的图,再去找相关代码。

本文汇总了一些matlab画图代码和修饰指令。

画图指令

连线图-plot

        连线图就是连接一个又一个的点,最后形成一个图(折线图),但是当对进行限制,比如x以一个极小的值从一个点增加到另一个点(例如:x=1:0.01:10),那么他们的连线就是一段近似的曲线。

        所以连线图可以进行变换,可以画成折线图或者曲线图。

        所以以下两段代码就很不一样

  y1=sin(x1);x1=0:0.1*pi:2*pi;   %x是以0.1*pi的增值,一点一点的加到2*pi,pi就是圆周率Π的matlab写法plot(x1,y1);
  y2=sin(x2)x2=0:2*pi;     %x是以1为增值,一点点的增加到piplot(y2)

于是把这两个代码合并画在一个图上

  x1=0:0.1*pi:2*pi;y1=sin(x1);plot(x1,y1);hold on;   %hold on用于连接这两个图,是第二张图不覆盖第一张图,使第二张图画在第一张图上x2=0:2*pi;y2=sin(x2)plot(x2,y2)

很明显,一个是较光滑的连线图,一个是较不光滑的连线图

plot(x)

x为向量时,以该元素的下标为横坐标 元素值为纵坐标绘出曲线

示例:

    x=[1 2 3 5 10 8];figure(1);plot(x);

plot(x,y)

   x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线, 曲线数等于x数组的列数。

    x=[1 3 5];y=[4 7 8];figure(1);plot(x,y);

  y=f(x)的函数也可以用plot(x,y)

示例:

    x=0:pi/100:2*pi;      %x是从0开始 以pi/100的间隔增加至2piy=2*exp(-0.5*x).*sin(2*pi*x);figure(1);plot(x,y);

y=f(x) x=f(t)的函数也可以用plot(x,y)来画

示例:

    t = -pi:pi/100:pi;x = t.*cos(3*t);y = t.*sin(t).^2;plot(x,y)

plot(x1,y1.x2,y2);

       绘制以x1为横坐标、y1为纵坐标的曲线1, 以x2为横坐标、y2为纵坐标的曲线2,等等。 其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。

示例:

   x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];figure(1);plot(x1,y1,'r',x2,y2,'b');

plotyy

绘制双纵坐标图

示例:

   x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];plotyy(x1,y1,x2,y2);

plot3(x,y,z)

绘制三维连线图

示例:

    t=1:0.1:10;x=t;y=sin(t);z=cos(t);figure(1);plot3(x,y,z)

对plot线的修饰

指令 线性
- 实线
虚线
点线
-. 点划线
. 用点号标出数据点
用圆圈标出数据点
× 用叉号标出数据点
+ 用加号标出数据点
s 用小正方形标出数据点
D 用菱形标出数据点
V 用下三角标出数据点
^ 用上三角标出数据点
< 用左三角标出数据点
> 用右三角标出数据点
v 用六角形标出数据点
P 用五角形标出数据点
指令 效果
'LineWidth’ 指定线宽
'MarkerSize' 指定标记大小

示例:

    x=[1 2 3 5 10 8];figure(1);plot(x,':+','LineWidth',1.5,'MarkerSize',10);   %用线宽为1.5的点线,用大小为10的加号标出数据点

直方图-bar

       bar(y) 创建一个条形图,y 中的每个元素对应一个条形。如果 y 是 m×n 矩阵,则 bar 创建每

组包含 n 个条形的 m 个组。

累计式直方图

即一个条形里面是各个成分的累计

  • 累计式垂直直方图
    clc;clear;y =[2 2 3;2 5 6;2 8 9;2 11 12];figure(1)bar(y,'stack')  %二维的累计式垂直直方图figure(2)bar3(y,'stcak') %三维的累计式垂直直方图

  • 累计式水平直方图
    clc;clear;y =[2 2 3;2 5 6;2 8 9;2 11 12];figure(1)barh(y,'stack')  %二维的累计式水平直方图

分布式直方图

  • 分布式垂直直方图
    y =[2 2 3;2 5 6;2 8 9;2 11 12];axis([0 15 0 5]);bar(y,'group');      %二维的分布式垂直直方图hold on;bar3(y,'group');     %三维的分布式垂直直方图

  • 分布式水平直方图
    y =[2 2 3;2 5 6;2 8 9;2 11 12];barh(y,'group');

饼状图-pie

pie(x)

pie(X) 使用 X 中的数据绘制饼图。饼图的每个扇区代表 X 中的一个元素。

示例:

X=[2,2,1,5];
figure(1);
pie(X);     

pie(x,y)

若要偏移第n个饼图切片,请将相应的y元素设置为1,不偏移的部分为0。 y中元素与x中元素顺序相对应。

示例:

X=[2,2,1,5];
y = [0 1 0 1];
figure(4)
pie(X,y)   %显然第二个,第四个数要进行偏移,得到部分偏移的饼状图

pie(x,{'a','b','c'})

{}内的abc为文字描述,会替代概率百分比

示例:

clc;clear;
X=[0.07,0.93,1];
figure(1);
pie(X,{'a','b','c'});    

pie3(x)

绘制三维饼状图

示例:

x=[2,2,1,5];
figure(1)
pie3(x,y)

pie3(x,y)

绘制偏移的三维饼状图,y代表是否发生偏移,0为不偏移,1为偏移。x为所需要绘制的图形

示例:

x=[2,2,1,5];
y = [0 1 0 1];
figure(1)
pie3(x,y)

散点图

scatter(x,y)

绘制空心圆圈图,俗称气泡图

示例:

    clc;clear;x=1:4;y=[1 3 5 4]figure(1);scatter(x,y);

 修饰:

代码 效果
scatter(x,y,a) a为常数,标识圈的大小
scatter(x,y,‘b’) 'b'为修饰颜色,b为蓝色
scatter(x,y,'MarkerFaceColor') 'MarkerFaceColor'为实心

示例:

    clc;clear;x=1:4;y=[1 3 5 4]figure(1);scatter(x,y,1000,'MarkerFaceColor','b');

gscatter(x,y)

绘制实心散点图

示例:

    clc;clear;x=1:4;y=[1 3 5 4]figure(1);gscatter(x,y)

离散杆图-stem

常见画法为:stem(x)或者stem(x,y),其中当这里的x,y都是常数是将绘制在某点的离散杆图

示例:

clc;clear;
x =linspace(0,2*pi,60);    %x的线性间距
a = sin(x);
b = cos(x);
stem(x,a)
hold on
stem(x,b)

y=[1 2 2 5 5 6 8 9 7 2];
stem(y);

正态分布图

normpdf

画标准正态分布概率密度函数

示例:

    x = -5:0.01:5;y = normpdf(x, 0, 1);  %生成 均值为0,方差为1的正态分布数plot(x,y);  %画图grid on;    %加方格

填充部分:

area(x,y)函数常用于为图像填充颜色

    x = -5:0.01:5;y = normpdf(x, 0, 1);  %均值为0,方差为1plot(x,y);  %画图grid on;    %加方格 hold on;x2=-1:0.01:1;y2 = normpdf(x2, 0, 1);  %均值为0,方差为1area(x2,y2)    %颜色填充

normcdf

绘制正态分布函数,是对上面函数的累积求和

    x = -5:0.01:5;y = normcdf(x, 0, 1);  %均值为0,方差为1plot(x,y);grid on;

histfit

画正态拟合的直方图

示例:

    rng default; r = normrnd(10,1,50,1);    % 用均值 10 和方差 1 从正态分布生成大小为 50 的样本。histfit(r)

normplot

正态概率图,常用于证明一组数据是否服从正态分布。

其中:横轴为变量区间,纵轴为累计概率分布。红色点划线为根据分析数据均值和方差构建的正式正态分布线,蓝色点为分析样本点,越接近于直线说明样本正态特性越好。

示例:

clc;clear;
y=[580   564   595   560   577   526   564   571   552   550 563   554   540   551   584   554   581   553   557   533 551   514   611   570   540   563   529   585   566   563 561   558   564   570   523   582   566   535   584   549 558   563   551   601   567   553   559   552   563   553 597   553   520   534   567   532   566   576   555   568 538   556   552   546   526   567   544   558   543   559 549   585   591   536   530   546   523   572   572   552 565   562   552   549   567   596   539   595   518   539 597   559   551   550   581   543   597   551   537   544 565   547   534   551   587   563   557   538   575   540 582   549   537   551   542   601   541   591   569   548 575   558   548   550   572   581   589   551   534   595 574   563   567   555   572   560   578   566   571   563 586   568   519   569   559   570   543   548   569   549 606   593   573   582   539   608   581   529   536   557 563   587   550   553   538   588   582   541   559   565 554   536   576   597   575   533   545   586   592   566];
normplot(y);

多子图-subplot

subplot(m, n, k)

使(m *n)幅子图中第k个子图成为当前图

示例:

   x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];subplot(2,2,1);   %在2*2的图窗中绘制第一个子图,即左上角的图plot(x1,y1);subplot(2,2,2);   %在2*2的图窗中绘制第二个子图,即右上角的图plot(x2,y2);

subplot(‘postion’, [left, bottom, width, height])

在指定的位置上开辟子图,并成为当前图

示例:

   x1=[1 2 3 4];y1=[4 5 6 6];x2=[1 3 5 7];y2=[7 8 8 9];subplot('position',[0.2 0.2 0.3 0.3]); plot(x1,y1);

三维网格图-mesh

先解释meshgrid函数

meshgrid是Matlab中用于生成坐标网络采样点的函数。

语法为:

  • [x,y]=meshgrid(a,b)

即:复制网格向量x和y生成矩阵网格(a,b)的坐标,其中,a,b,可以为常数(1:10,1:20等等这样的数),也可以是a=x,b=y。具体可看下面的代码示例

  • [x,y]=meshgrid(c)

即:复制网格向量x和y生成矩阵网格(c,c)的坐标

  • [x,y,z]=meshgrid(x,y,z)

即:复制网格向量x和y生成矩阵网格(x,y,z)的坐标

所以,三维网格图画法如下:

x=1:0.1:10;
y=1:0.1:10;
[x, y] = meshgrid(1:10,1:10);
%这里的1:10和1:10,改成1:0.1:10和1:0.1:10,会使整个图更加曲,更加平滑,网格也就更细
%改成:[x,y]=meshgrid(x,y),同样也是对的,而且可能更合理z=x.^2-y.^2;
mesh(x,y,z)

三维曲面图-surf

画图指令

  • surf(x,y,z)

surf函数和mesh函数的调用格式基本相同两者的区别在于mesh绘出彩色的线,而surf绘出彩色的面除了surf函数图形外,还有其他子函数,可以对在原本图形上绘制更多功能性曲线。

示例:

[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
surf(x,y,z)

  • surfc(x,y,z)

可以绘制带有等高线的三维表面图形

示例:

    [x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;surf(x,y,z) hold on;surfc(x,y,z)

  •  surfl(x,y,z)

绘制带有阴影的三维表面图形

示例:

    [x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;surf(x,y,z) hold on;surfl(x,y,z)

画图修饰

  • 模糊处理
代码 效果
shading faceted 默认效果,代码不写也可以
shading flat 去掉网格线
shading interp  色彩更平滑过渡

示例:

    clc;clear;[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;subplot(1,3,1)surf(x,y,z) hold on;title('1')    %默认效果,代码我没写[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;subplot(1,3,2)surf(x,y,z) shading flat;hold on;title('2')   %模糊度2[x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;subplot(1,3,3)surf(x,y,z)shading interp;title('3')   %模糊度3

如图所示

  • 画面冻结

冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示

    axis vis3d

示例:

    [x,y] = meshgrid(-5:0.5:5);z = sqrt(x.^2+y.^2)+2e-10; z = sin(z)./z;axis vis3d;surf(x,y,z) 

修饰指令

图像修饰

基础画图指令

    figure():绘制图窗hold on:保持打开的命令hold off:关闭图形保持功能

颜色修饰

  • 指令调色
指令 颜色
b 蓝色
g 绿色
r 红色
c 青色
m 品红
y 黄色
k 黑色

示例:

    x=[1 2 3 5 10 8];figure(1);  plot(x,'g');   %‘g’ 说明是绿色

x=[1 2 3 5 10 8];
figure(1);
plot(x,'r');   %‘r’是红色

  • RGB调色

部分RGB调色对照表,仅供参考。

颜色 R G B
黑色 0.00 0.00 0.00
灰色 0.75 0.75 0.75
石板灰 0.44 0.50 0.41
暖灰色 0.50 0.50 0.41
白色 1.00 1.00 1.00
天蓝色 0.94 1.00 1.00
淡黄色 1.00 0.92 0.80
红色 1.00 0.00 0.00
珊瑚红 1.00 0.50 0.31
砖红 0.70 0.13 0.13
粉红 1.00 0.75 0.80
桔红 1.00 0.27 0.00
黄色 1.00 1.00 0.00
金黄 1.00 0.84 0.00
橙色 1.00 0.38 0.00
橘黄 1.00 0.50 0.00
淡黄 0.96 0.87 0.70
棕色 0.50 0.16 0.16
巧克力色 0.82 0.41 0.12
褐色 0.63 0.32 0.18
蓝色 0.00 0.00 1.00
钴色 0.24 0.35 0.67
深蓝 0.10 0.10 0.44
祖母绿 0.00 0.78 0.55
天蓝 0.53 0.81 0.92
绿色 0.00 1.00 0.00
草绿 0.50 1.00 0.00
青色 0.00 1.00 1.00

示例:

    x=[1 2 3 5 10 8];figure(1);plot(x,'color',[0.1 0.1 0.9]);  %绘制带颜色的图

背景修饰

  • 网格线
grid on加网格线
hidden on 将网格设为不透明
hidden off 将网格设为透明
  • 背景颜色

  1. 更改figure外背景颜色
x=[1 2 3 5 10 8];
figure(1);                %创建画窗
set(1,'color',[0 0 0]);   %修改figure外背景色
plot(x);                  %绘画

具体改成什么颜色可根据RGB慢慢调

        2.更改figure内背景色

    x=[1 2 3 5 10 8];figure(1);set(1,'color','white')   %figure外为白色colordef black;          %figure内为黑色plot(x);                 %绘图

 背景色还可以是透明色

    x=[1 2 3 5 10 8];figure(1);set(1,'color',[0 0.5 0])   %figure外墨绿色colordef none;             %figure内是透明色plot(x);

坐标指令

axis函数

axis函数可以调整图的坐标轴范围和纵横比等等

axis([xmin xmax ymin ymax zmin zmax]);

如果只给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。如果给出了全部参数,则绘制出三维图形。

axis函数的功能丰富,其常用的用法有:

  1. axis equal:纵横坐标轴采用等长刻度
  2. axis square:产生正方形坐标系(默认为矩形)
  3. axis auto:使用默认设置
  4. axis off:取消坐标轴
  5. axis on:显示坐标轴
  6. axis tight:按紧凑方式显示坐标轴范围,即坐标轴范围为绘图数据的范围

图像标识

图名

  • title(‘xx’)命名

坐标名

  • xlabel(‘xx’)x轴标注
  • ylabel(‘xx’)y轴标注

示例:

    figure(1)xlabel('这是x轴')ylabel('这是y轴')

图形文本注释

text函数

text语法包括:

  • 添加文字描述

text()函数用来给图加上说明性文字。格式:text(x,y,'文字')或者text(x,y,[ '文字' ])

单个文字可以用text(x,y,'文字'),多段文字可以用text(x,y,[ '文字' ,'文字']),其中x,y都是具体位置,是具体数

  • \fontsize{}- 字体大小
  • \fontweight{} - 字符粗细
  • \fontname{}- 字体名称    \arg-指定字体风格

字体修饰样式:\fontname{arg}

  • 位置标识
^{ } 上标 'text^{text}'
_{ } 下标 'text_{text}'
\bf 粗体 '\bf text'
  • color - 文本颜色
  • \leftarrow 和\rightarrow-左右箭头

示例:

    x=0:0.05*pi:2*pi;y=sin(x);figure(1);plot(x,y);text(pi,0,'\leftarrow\fontsize{20}\fontname{Bf}这是正弦');

图例

legend(‘文字’)加图例

图例的具体属性设置可以在figure窗口工具栏-插入栏进行调整

想要详细的图例调用,可以打开属性检查器。

在这里面可以调大小改颜色等等。

(能简单在图窗调,为啥要辛苦记代码~)

MATLAB-画图汇总相关推荐

  1. Matlab命令汇总

    Matlab命令汇总 都是从网上转的,贴到一起方便查,使用的时候直接Ctrl+F搜索. 一.常用对象操作:除了一般windows窗口的常用功能键外. 1.!dir 可以查看当前工作目录的文件.   ! ...

  2. 《数字图像处理》冈萨雷斯,Matlab函数汇总 .

    <数字图像处理>冈萨雷斯,Matlab函数汇总 . 图像显示 colorbar 显示彩条 getimage 由坐标轴得到图像数据 ice(DIPUM) 交互彩色编辑 image 创建和显示 ...

  3. matlab画图配色RGB+线性

    转载自https://blog.csdn.net/a_cherry_blossoms/article/details/115185831 画图的线型和符号该博主链接中可以找到:https://blog ...

  4. Matlab画图时的线型、标记以及颜色简记

    文章目录 背景 线型 标记 颜色 例说 背景 使用Matlab画图的时候经常由于需要画图,但是总是忘了曲线颜色.线型以及标记,这里在这里记录下,方便查阅. 效果预览: LineSpec -线型,标记和 ...

  5. MATLAB 画图时插入图例

    MATLAB 画图时插入图例 legend('a','b');% 两条曲线,依次为a和b

  6. Matlab画图-非常具体,非常全面

    Matlab画图 强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数. ...

  7. matlab caxis 刻度,[求助]MATLAB画图问题,caxis.m的问题

    [求助]MATLAB画图问题,caxis.m的问题 近日在用evolutionary spectrum做一个序列的周期分析,碰到如下的问题: ??? Error using ==> set Ba ...

  8. 2021-01-20 Matlab画图技巧与实例:堆叠图stackedplot

    Matlab画图技巧与实例:堆叠图stackedplot 在MATLAB线图中,一共有3种类型,分别是 线图,包括:plot,plot3,stairs,errorbar,area,stackedplo ...

  9. matlab的exec程序,C++调用Matlab画图的一段程序

    劳动节闲来无事,写了一天程序,just for fun. 看,这是C++调用Matlab画图的一段程序.暂时不想多解释了,有兴趣的话,看看下面的代码吧. 以下几段代码由上到下,越来越旧.最上面的是最新 ...

  10. [Matlab] 画图命令

    matlab画图命令,不定时更新以便查找 set(gcf, 'color', [1 1 1]); % 使图背景为白色 alpha(0.4); %设置平面透明度 plot(Circle1,Circle2 ...

最新文章

  1. 谈谈WEB开发中的苦大难字符集问题
  2. WinDBG 要点学习
  3. .NET Core WEB API中接口参数的模型绑定的理解
  4. 双目标定与矫正 matlab
  5. 网站图片下载 Python
  6. 信息学奥赛C++语言:等级化的成绩
  7. ThreadLocal 初探
  8. -webkit-filter是神马?
  9. sklearn一般流程
  10. web.config从.net framework3.5向4.0迁移注意事项
  11. bzoj4517[Sdoi2016]排列计数(组合数,错排)
  12. 一个RSS阅读器的开源 ---- 邀请您加入开发队伍
  13. vrep中的运动规划(主要是针对机械臂)(未完)
  14. 2020年最新测绘规范目录(可下载在线查看相关规范)
  15. java jmail_JavaMail学习--使用JMail发送邮件
  16. 简历职称 计算机,个人简历专业技术职务怎么填 就是你所学的专业技术是你取得...
  17. tomcat乱码_中文乱码
  18. Xftp的下载、安装、使用
  19. 群晖7.1使用SHR添加硬盘
  20. Jerry Ma:为什么我更喜欢做空?

热门文章

  1. java双缓冲_java 双缓冲技术
  2. IDEA的xml注释的顶格和空格问题
  3. 判断是否是微信浏览器
  4. 非合作博弈篇——混合策略博弈(mixed strategy)
  5. 软件、硬件版本号命名规范
  6. docker下修改mysql配置文件
  7. 推荐一款好用的Web端JSON在线编辑器svelte-jsoneditor
  8. lily+Solr 原理与配置
  9. arm开发板 qt5.6.0 qt使用文泉驿字体
  10. Appium 国内下载地址(百度云盘)