使用matlab的时候常常会忘掉一些指令,每次都要重新查找,挺麻烦的,这里收集一些常用的绘图指令,供自己和大家以后方便查找和使用。

1、例子-包含了常用绘图命令

 clear
clc %%数据准备
x = 0:0.05:1;
y = -x.*log(x);
figure(1);%图像1
set(gcf, 'color',[0.1 0.5 1]);%设置整体图片的背景色 %%绘制曲线
plot(x,y,'rs-','LineWidth',2,'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10); %%在最大值位置添加文本
xe = 1/exp(1);
ye = -xe*log(xe);
hold on;
plot(xe,ye,'pb', 'MarkerSize', 15,'MarkerEdgeColor','k','MarkerFaceColor','m');
text(xe-0.02,ye+0.03,['最大值点(',num2str(xe,3),',',num2str(ye,3),')'],...
'FontSize',12, 'Color',[0.9 0.1 0.5], 'FontWeight','bold'); %%设置标题
title('函数y = xlogx','Color','k','FontSize',30); %%坐标轴标题设置
xlabel('xlogx','Color','k','FontSize',20);%横轴标题
ylabel('y','Color','k','FontSize',20);%纵轴标题 %%坐标轴刻度设置
set(gca, 'ytick',x,'yticklabel',x,'xtick',x,...
'xticklabel',x, 'color',[0.8 0.9 0.9],...
'FontSize',10); %xtick就是你要在哪些地方显示刻度,xticklabel就是显示什么内容 %%坐标轴显示范围设置
axis equal %强制坐标轴尺度相同,这个放在前面或者后面效果会不一样
xlim([0 1]);%x轴范围
ylim([0 0.5]);%y轴范围 %%设置Legend
hleg = legend('y=xlogx','Location','SouthWest');%本身不能设置字体的大小,需要通过set进行设置
set(hleg,'FontSize', 15, 'FontAngle','italic','FontWeight','bold',...
'TextColor',[.6,.2,.1],'Color',[1,1,1]);%Color为设置坐标的背景颜色 %%网格设置
% grid on;%最简单的方式
% set(gca,'XMinorGrid','on','YMinorGrid');%设置最小网格,可以只设置其中的一种
set(gca,'XGrid','on','YGrid','on');%设置大网格,可以只设置其中的一种 %%全屏显示figure
scrsz = get(0,'ScreenSize');
set(gcf,'Position',scrsz); %%保存图像
set(1, 'InvertHardCopy', 'off');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
filename = 'xlogx';
%print(1, '-djpeg', filename);%其他格式 -djpeg,-dpng,-dbmp,-dtiff,-dgif
saveas(1,filename,'png');%保存成图片,其他格式 jpeg,png,bmp,tiff,gif,另一种保存图像的方法
saveas(1,filename,'fig');%保存成figure文件

  以上代码的效果图如下所示:

2、线型、点标记和颜色

Matlab绘制曲线,主要包含三类属性,分别是曲线的类型,点标记及其颜色。默认下通过这三种符号的组合形成一个字符串来表现曲线。搭配的形式为:

‘线型+颜色+标记点’,例如'-r+'表示曲线为实直线,红颜色,曲线穿插有‘+’的点标记符。如下例子所示:

 figure
t = 0:pi/20:2*pi;
plot(t,sin(t),'-.r*');
hold on
plot(t,sin(t-pi/2),'--mo');
plot(t,sin(t-pi),':bs');
hold off

效果如下图所示:

下面给出了一些常用的线型,点标记和颜色类型

线型 颜色 标识符
指示符 线型 指示符 线型 指示符 线型
'-' 实线(默认) r 红色 '+' 加号
'--' 双划线 g 绿色 'o' 圆圈
':' 虚线 b 蓝色 '*' 型号
'-.' 点划线 c 蓝绿色 '.'
'none' 无线,不显示 m 洋红色 'x' 叉号
    y 黄色 'square' or 's' 正方形
    k 黑色 'diamond' or 'd' 菱形
    w 白色 '^' 朝上三角符号
        'v' 朝上三角符号
        '>' 朝右三角符号
        '<' 朝左三角符号
        pentagram' or 'p' 五角星
        'hexagram' or 'h''' 六角星
        'none' 无标识符(默认)

 

3、多图显示在一个Figure中

需要用到subplot(m,n,p)函数,m表示行数,n表示列数,p表示第p个图,功能为:表示在m行n列的图上绘制第p个子图像;

实现代码如下:

 x = :0.1:

 %图1
y1 = sin(x).*cos(x)./x;
figure();
subplot(,,);%子图1
plot(x,y1,'r');
title('y=sin(x)');
xlabel('x');
ylabel('y'); %图2
y2 = cos(x)./x;
figure();
subplot(,,);%子图2
plot(x,y2,'b');
title('y=cos(x)');
xlabel('x');
ylabel('y'); %图3
y3 = x.*sin(x);
figure();
subplot(,,);%子图3
plot(x,y3,'k');
title('y=cos(x)');
xlabel('x');
ylabel('y'); %图4
y4 = x.*cos(x.^0.5);
figure();
subplot(,,);%子图4
plot(x,y4,'m');
title('y=cos(x)');
xlabel('x');
ylabel('y'); %%全屏显示figure
scrsz = get(,'ScreenSize');
set(gcf,'Position',scrsz);
%%设置颜色
set(gcf, 'color',[0.1 0.5 ]);%设置整体图片的背景色
set(, 'InvertHardCopy', 'off');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
saveas(,'result','png');%保存成图片,其他格式 jpeg,png,bmp,tiff,gif,另一种保存图像的方法

效果图如下:

4、句柄,以及gcf,gca和gco三者的区别

  图形句柄的理解

  Matlab和Windows中的句柄类似,Figure是Matlab中最常用的图像对象。假设现在又多个Figures(我们视他们为对象),想对其中某个Figure进行操作,未完成这样的功能,Matlab给每个FIgure都分配了一个不同的ID(是一个数,例如1,2,3,...),而这个ID就是一个句柄。有了这个句柄我们就可以对指定相应的图形窗口,进行相应的操作,如颜色设置,字体设置和线型设置等。下面是一个关于三个图形操Figure作的例子:

 clc
close all
%%产生三个句柄
figure(1)%产生一个图形figure,并赋予句柄值为1
figure(2)%产生一个图形figure,并赋予句柄值为2
figure(3)%产生一个图形figure,并赋予句柄值为3 %%操作Figure2
%handle = 2;%这是错误的指定方式
handle = figure(2);%获取figure2的句柄
surf(peaks);
title('Figure2','Color','w','FontSize',20); set(handle,'Color',[0,0.5,0.5],'Toolbar','none')
set(handle, 'InvertHardCopy', 'off');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on %%操作Figure1
handle = figure(1);%获取figure1的句柄
set(handle, 'InvertHardCopy', 'off');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
surf(peaks);
title('Figure1','Color','w','FontSize',20);
set(handle,'Color',[0,0.0,0.5],'Toolbar','none') %%操作Figure3
handle = figure(3);%获取figure3的句柄
set(handle, 'InvertHardCopy', 'off');%设置的背景色有效,如果为on则图形不保存背景色,maltab 默认为 on
surf(peaks);
title('Figure3','Color','w','FontSize',20);
set(handle,'Color',[0.5,0.0,0.5], 'Toolbar','none') saveas(1,'','png');
saveas(2,'','png');
saveas(3,'','png');

  结果如下图所示:  

  除了常用的Figure外,Axes也是常用的句柄,还有其他的对象,它们是用以显示图形和用户界面元素的基本元素,但用的较少,下表列出了各种图形对象:

对象 描述
Root 对计算机屏幕最高级的对象
Figure 用来显示图形和用户界面的窗口
Axes 在窗口中显示图形的轴
Uicontrol 用户界面控制。执行一个对用户交互作用的函数。
Uimenu 用户定义窗口菜单
Uicontextmenu 右键单击对象时弹出的菜单
Image 二维像素基础图
Light 影响斑点和表面对象着色的光源
Line 用于诸如plot,plot3,semilogx,等函数的线
Patch 带边缘的填充多边形
Rectangle 二维形状,从矩形到椭圆
Surface 由x-y平面以上的数据值所作图创建的矩阵数据的三维表示
Text 字符串

  gcf,gca和gco

  gcf 返回当前Figure 对象的句柄值,可以操作图形的整体效果,如背景色,图形打印设置等
  gca 返回当前axes 对象的句柄值,可以操作坐标轴的效果,包括了坐标轴的刻度,显示范围,字体大小,字体磅数(普通,加粗),字体方向(斜体,正体)
  gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure 的CurrentObject属性中。

4、参考资料

  [1]. http://blog.sina.com.cn/s/blog_675eb4fd0100tvhp.html

  [2]. http://www.cnblogs.com/CBDoctor/archive/2012/04/06/2434072.html

  [3]. http://blog.csdn.net/wguoyong/article/details/6873877

Matlab 常用绘图指令(二维图形)的更多相关文章

  1. matlab绘制二维图形

    常用的二维图形命令: plot:绘制二维图形 loglog:用全对数坐标绘图 semilogx:用半对数坐标(X)绘图 semilogy:用半对数坐标(Y)绘图 fill:绘制二维多边填充图形 pol ...

  2. 3ds max学习笔记(十五)-- 二维图形的操作

    (二维图形的创建) 1,在命令面板的[新建],单击第二个按钮: 从中选择对象名称,在视图种单击拖动进行创建,特殊:线:摁[shift]限制水平,垂直方向: 2,二维对象参数: 在渲染中启用:显示二维线 ...

  3. 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换

    原文:二维图形的矩阵变换(三)--在WPF中的应用矩阵变换 UIElement和RenderTransform 首先,我们来看看什么样的对象可以进行变换.在WPF中,用于呈现给用户的对象的基类为Vis ...

  4. VS2008集成QT的OpenGL开发(实现二维图形的旋转)

    主要是利用Qt中的定时器实现了二维图形的旋转功能: #ifndef QGLTEST_H #define QGLTEST_H #include <QGLWidget> #include &l ...

  5. 通过Matrix进行二维图形仿射变换

    Affine Transformation是一种二维坐标到二维坐标之间的线性变换,保持二维图形的"平直性"和"平行性".仿射变换可以通过一系列的原子变换的复合来 ...

  6. 二维图形的矩阵变换(二)——WPF中的矩阵变换基础

    原文:二维图形的矩阵变换(二)--WPF中的矩阵变换基础 在前文二维图形的矩阵变换(一)——基本概念中已经介绍过二维图像矩阵变换的一些基础知识,本文中主要介绍一下如何在WPF中进行矩阵变换. Matr ...

  7. openGL实现二维图形和三维图形

    openGL是一个强大的底层图形库,其命令最初的时候使用C语言实现的.openGL定义了一个图形程序接口,常用于制作处理三维图像,功能强大,调用方便,在图像处理十分受欢迎. 实现图形主要使用的是ope ...

  8. QT 二维图形 原理、发展及应用

    转载自 网易博客:sun的博客 http://zhouyang340.blog.163.com/blog/static/3024095920126710504178/ 2D绘图 Qt4中的2D绘图部分 ...

  9. 使用CSS3中Canvas 实现两张图片合成一张图片【常用于合成二维码图片】

    CSS3 Canvas 实现两张图片合成一张图片 需求 需求:在项目中遇到将一张固定图片和一张二维码图片合成一张新图片,并且用户能够将图片保存下载到本地. 思路:使用 CSS3 中的 Canvas 将 ...

随机推荐

  1. Flask小demo---代码统计系统

    功能要求: 管理员登录 # 第一天 班级管理 # 第一天 学生管理 # 第一天 学生登录 上传代码(zip文件和.py文件) 查看个人提交记录列表 highchar统计 学生列表上方使用柱状图展示现班 ...

  2. python基础--shutil模块

    shutil模块提供了大量的文件的高级操作. 特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作.对单个文件的操作也可参见os模块. 注意 即便是更高级别的文件复制函数(shutil.cop ...

  3. JS调用百度地图API标记地点

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  4. java 多线程总结篇2之——Thread类及常用函数

    此片文章主要总结的是Thread类及相关的基础概念和API,首先需要厘清线程调度中的几个基本概念: 一.线程调度的基本方法 1.调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会 ...

  5. 修饰符(动态String数组篇)--- 常用 解除疑问。

    1.无修饰符----是直接传基本类型的地址过来,并没有把基本类型的指针复制一份入栈,所以一旦修改就是修改原来的值. 2.const 修饰符 与 无修饰符一致. 3.var修饰符 与 上一致. 4.ou ...

  6. python图片处理(二)

    python中图像处理有pillow和skimage 图像中一般有个RGBA值,RGB顾名思义就是红绿蓝值,A表示alpha表示是透明度. from PIL import ImageColor pri ...

  7. 为通过 ATS 检测 Tomcat 完全 TLS v1.2、完全正向加密及其结果检验

    2017 年起 app store 要求 app 对接的服务器支持 TLS v1.2,否则 ats 检测不予通过.有点强制推 TLS v1.2 的意味.本文介绍如何使 tomcat 强制执行 TLS ...

  8. 根据后端传的时间前端js进行倒计时

    一.故事背景: 1. 今天公司有个项目需求 2. 在前端页面实现一个倒计时功能 3. 初步设想:后端根据需求规定一个未来的时间,前端根据当前时间进行计算 4. 然后将时间格式化,时分秒的格式 5. 时 ...

  9. Java学习(异常类)

    一.什么是异常: 异常就是在运行时产生的问题.通常用Exception描述. 在java中,把异常封装成了一个类,当出现问题时,就会创建异常类对象并抛出异常相关的信息(如详细信息,名称以及异常所处的位 ...

  10. 面试题46:求1+2+ …… +n

    题目:求1+2+…+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A?B:C). 通常求1+2+…+n除了用公式n(n+1)/2之外,无外 ...