目录

一、绘制不同种类的图像

1.1.画一般曲线图

1.2.绘制柱状图

二、matlab的图像处理

2.1将多张图同时绘制在一个Figure上面,采用subplot函数

2.2改变matlab图像坐标刻度增长幅度

2.3设置坐标轴刻度为任意值

2.4在一张Figure中用同一个x对应两个y作图

2.5关于ylim函数,ylabel函数,yticks函数的说明(x同理)

2.5.1 ylim函数

2.5.2 ylabel函数

2.5.3 yticks函数

三、用matlab画三维柱状图



最近用matlab画图,在这边做一个简单总结,以后还需要逐渐丰富内容。

一、绘制不同种类的图像

matlab最常用的绘图命令也就是plot,以下是几种较为常用的绘图方法。

1.1.画一般曲线图

输入以下代码绘制简单的sin函数曲线

运行结果如下:

可以看到运行结果平滑度很差,这是有由于matlab是以描点连线的方式来作图的,x=1:20默认间隔是以1来绘制点,也就是说此时matlab画出了20个点,然后连线做的图像,所以导致图像不平滑,此时可以通过设置点和点的间距来使得图像变平滑,改变输入x的方式如下:

此时的运行结果如下:

可以看到此时平滑程度较高。

1.2.绘制柱状图

在matlab中用bar函数来绘制柱状图:

如果想要每个柱的颜色都不相同,可以参考以下代码:

x=[1,2,3,4,5]
y=[5,4,3,2,1]
width=0.8;
hold on     %至关重要!!!
for i=1:length(y)h=bar(i,y(i),width)if y(i)==1set(h,'FaceColor','b');else if y(i)==2set(h,'FaceColor','y');else if y(i)==4set(h,'FaceColor','g');elseset(h,'FaceColor','r');endendend
end
xlabel('x轴')
ylabel('y轴')

运行结果如下图所示:

注意一定要用hold on避免图像被刷新。

3.matlab画散点图

matlab通过scatter函数画散点图,参考代码如下:

x=[1 2 3 4 5 6 7 8 9 10]
y=[4 8 6 1 2 4 7 6 9 11]
h=scatter(x,y,'*')

输出结果如下:

二、matlab的图像处理

2.1将多张图同时绘制在一个Figure上面,采用subplot函数

例如:

subplot(3,1,1),将一张Figure分成三行一列,此时画的这张图在第一个位置上

subplot(3,1,2),将一张Figure分成三行一列,此时画的这张图在第二个位置上

subplot(3,1,3),将一张Figure分成三行一列,此时画的这张图在第三个位置上

即subplot函数第一个变量指的是行数,第二个变量指的是列数,第三个变量指的是当前所画的图出现的位置。

结果如下图所示:

透过这张模糊的图像可以看到结果大致是这样的。

2.2改变matlab图像坐标刻度增长幅度

在绘制matlab图像的时候,就算设置了x轴和y轴的坐标范围,但是软件会自动给出合适的坐标增量,例如我希望x轴是从0-20以1为间隔增长,但是matlab默认画出的图像如下:

可以看出matlab自动设置以2为增幅进行增长,若想要改变增幅,以下介绍两种方法。

 第一种方法是通过matlab生成图像时的属性检查器改变,缺点是每张图片都需要重新进行点击修改,图片数量过多的时候会很麻烦。操作过程如下:

首先随便画出一张图,点击属性检查器,如下图:

之后双击曲线可以改变曲线颜色,并且可以给曲线加特殊标记,例如在每个转折点处加小圆点,小方块等等。双击空白处可以选择图像中字体,字号等等参数信息,其中Fontsize是一次性改变整张图中的字号大小,双击坐标轴手动输入坐标值改变坐标轴增量信息,以x轴为例,如下图所示:

可以看出横轴增量从2变成1,但是这种方法比较麻烦,通常这种方法用来改变图像的字体字号等外观信息比较方便一点。

第二种方法是通过代码的方法进行修改,核心代码如下:

axis([1 20 0 15])
xticks(1:1:20)
yticks(0:2:15)

其中,axis函数的意思是设置横纵坐标范围,本例中横坐标是从1-20,纵坐标是从0-15,由于我期望输出的图像横坐标是从1开始到20,如果不用axis函数设置的话,而直接用下面两行代码设置的话,会出现x在0-1的时候没有对应y值,即出现空白区域,如下图所示:

通过axis函数设置,可以使得图像横坐标强行从1开始画起,避免了0-1空白区域的尴尬,之后xticks函数和yticks函数分别设置x轴和y轴的范围

例如xticks(1:1:20) ,第一个参数1是指横坐标从1开始,第二个1指的是增量幅度为1,第三个参数20指的是画到x=20的时候,同理yticks函数是设置纵坐标的,下图是结果展示:

2.3设置坐标轴刻度为任意值

有时候画图的时候只需要显示个别刻度,这时候依旧可以采用xticks和yticks函数,以x轴为例,我期望x轴刻度只显示0,2,18这三个数字,核心代码如下:

注:需要和xlim([])共同使用

set函数改变坐标轴字体以及刻度大小

xticks([0 2 18])
set(gca,'FontSize',13);

输出图像结果如下:

2.4在一张Figure中用同一个x对应两个y作图

在matlab作图的时候,有时候会遇到一个x对应两个y,因此可以画出两条曲线,但是这两个y值不一样,那么这时候可以将Figure的左右两边设置两种刻度,这样就可以把两条x取值相同,但是y取值不同的两条曲线作到同一张图片里面,之后可以通过设置颜色,以及添加标签等方式对这两条曲线进行区分,能够在Figure中直观看到两种曲线,核心函数是yyaxis函数,举例如下:

x=[0 1 2 3 4 5 6 7 8 9];
y1=[10 9 8 7 6 5 4 1 2 3];
y2=[5 6 1 2 3 5 4 3 2 1];
hold on
yyaxis left;
plot(x,y1,'--r')
ylabel('y1轴')
yyaxis right;
plot(x,y2,':k')
xlabel('x轴')
ylabel('y2轴')
legend('我是y1','我是y2')

其中yyaxis left是将坐标轴设置在左侧,yyaxis right是将坐标轴设置在右侧,matlab会自动设置两种颜色来绘制图像,之后我用legend函数对两种曲线进行标识,若需要在word中黑白打印,为了区分两条曲线,可以设置两种曲线的格式,常用曲线格式以及颜色如下表:

输出结果如下:

从图像可以看出,通过这种方法可以实现两种y轴下的两条曲线绘制在同一个Figure中。

2.5关于ylim函数,ylabel函数,yticks函数的说明(x同理)

2.5.1 ylim函数

该函数是用来设置或查询 y 轴范围。

使用方法:接下来是摘自比较官方的语言

ylim(limits) % 设置当前坐标区或图的 y轴范围,limits 为 [ymin,ymax] 形式的向量(ymax > ymin)

ylim auto % 设置自动模式,使坐标区自动确认 y 轴范围(即此命令会将坐标区的 YLimMode 属性设置为 auto)

ylim manual % 设置手动模式,将范围冻结在当前值(即此命令会将坐标区的 YLimMode 属性设置为 manual)此命令用在 hold on 命令向坐标区添加数据时保留当前范围

m = ylim('mode') % 返回当前 y 轴范围模式(auto 或 manual)

___ = ylim(target,___) % 对 target 指定到的坐标区或图进行上述设置

半自动 y 轴范围:limits 指定的向量 [ymin,ymax] 中的一个为具体数值,一个为无穷大(无穷大方向由 MatLab 自动确认)

        我自己使用直接ylim([-10 10]),意思就是输出的图像的y轴只显示-10到10的范围

例如,在2.4中所写代码中加入这一行,结果也会随之改变,如下图:

2.5.2 ylabel函数

该函数是用来给y轴写标签用的,比如2.4中的例子

2.5.3 yticks函数

该函数主要是用来改变y轴刻度的,见2.2-2.3的例子

三、用matlab画三维柱状图

目标:将两个三维柱状图绘制到一个图像中

实际应用:官方误差与实际误差

代码:

figure()
bar3(B,'y')                                           %绘制三维柱状图,B为数组,y为颜色黄色
alpha(0.1)                                            %设置透明度函数,取值0-1,越小越透明
hold on                                               %在现有图像基础上继续作图
bar3(F,'c')                                           %绘制三维柱状图,F为数组,c为颜色亮青色
ylabel('连锁故障类型')                                 %设置y轴标签
set(gca,'yticklabel',{'大风低高穿',...
'大风高低穿','小风低高穿','小风高低穿'});                %设置y轴刻度标签
xlabel('区间')                                        %设置x轴标签
set(gca,'XTick',[1,2,3,4,5,6,7,8,9,...
10,11,12,13,14,15,16,17,18,19]);                      %设置x轴刻度标签位置
set(gca,'xticklabel',{'F1A','F3A','F5A',...
'F1B1','F3B1','F5B1','F2B1','F4B1','F1B2',...
'F3B2','F5B2','F2B2','F4B2','F1C','F3C',...
'F5C','F2C','F4C','FGP'});                            %设置x轴刻度标签对应的名字
zlabel('有功功率误差')                                 %设置z轴标签

注:在不设置x轴刻度标签位置的情况下,matlab默认以2为单位显示刻度,因此不能将全部设置的x轴刻度标签显示出来,因此需要加xtick函数,确定标签位置,也可以在前面所述的属性检查器中修改刻度。

四、将公式直接写入图中

代码:

%%
%测试将公式加入图片中
x = 1:1:10;
y = xfigure(1)
plot(x,y)figure(2)  %选取一个花里胡哨的公式测试效果
plot(x,y)
str = ['$$\left[\begin{array}{c}\dot{U}_{2} \\\dot{I}_{2}\end{array}\right]...' ...'=\left[\begin{array}{cc}\cos \lambda_{2} & \mathrm{j} Z_{2} \sin \lambda_{2}...' ...' \\\mathrm{j} Z_{2}^{-1} \sin \lambda_{2} & \cos \lambda_{2}\end{array}...' ...'\right]\left[\begin{array}{l}\dot{U}_{3} \\\dot{I}_{3}\end{array}\right]$$']
text(5,5,str,'interpreter','latex','FontSize',10)

展示效果:

备注:

1.公式位置以及大小:

上述代码中的text中(5,5)是公式坐标位置,10是公式字体大小

2.数学公式转化为Latex公式方法:

网址:在线LaTeX公式编辑器-编辑器 (latexlive.com)

进入网址后注册,注册完毕选择图片识别,将所需要的公式ctrl+V直接复制到识别区域,自动转化为Latex公式,将Latex代码进行复制。

注意:若数学公式过长,转化出的Latex可能不在一行,需要手动转化为一行(与word换行变成一行同理),matlab中的代码为:str = %%Latex代码%%,若matlab中一行太长不美观,可以在适当位置加入...后回车,如上代码所示

同理,也可以将Latex代码直接复制到word里面的mathtype公式编辑器中,可以实现公式图片转成mathtype公式。

Matlab画图相关知识相关推荐

  1. MATLAB画图必备知识

    在使用MATLAB的过程中,经常需要对输出图形中的变量进行标注,其中经常遇到的难题就是如何标注各种上标.下标.斜体.黑体.箭头.上圆圈.正负号等特殊符号,以及如何标注特殊的数学符号.这里第一机电网给大 ...

  2. matlab画图相关

    1.matlab设置x轴和y轴的坐标显示范围和刻度 在plot后面输入 set(gca,'XLim',[0 10]);%X轴的数据显示范围 set(gca,'XTick',[0:1:10]);%设置要 ...

  3. MATLAB 画图相关函数

    MATLAB 画图相关 #gscatter函数 gscatter函数可以用来按分类或分组来画离散点,适用于画多个类别的离散样本分布图. 使用方法: gscatter(x,y,group) gscatt ...

  4. 光斑定位技术在空间激光通信中扮演着重要的角色。本文将详细介绍光斑定位的相关知识,并使用Matlab实现一些相关的算法。

    光斑定位技术在空间激光通信中扮演着重要的角色.本文将详细介绍光斑定位的相关知识,并使用Matlab实现一些相关的算法. 一.光斑定位技术 光斑定位技术是一种通过计算像素位置来确定目标物体位置的技术,广 ...

  5. 图像处理的一些相关知识(Related knowledge for IQA)

    图像处理的一些相关知识 logistic transform 一般的logistic function 逻辑回归的向量化实现样例 - Ufldl 可向量化编程 分类问题中常用,代替开关函数 IQA算法 ...

  6. matlab画图RGB调色

    1.使用matlab画图时,怎样才能调出顺眼的颜色呢?反正我之前使用红.绿.蓝三种颜色画图时,真的辣眼睛.下面这图是我根据一篇论文上的图像调的颜色: 我也知道这并不好看,但是可以给各位提个醒.提个方向 ...

  7. Matlab 画图连线、箭号表示

    Matlab 画图连线.箭号表示 写本篇文章的目的是,笔者在进行相关问题的Matlab可视化时,对点之间进行连线标注,去网上搜索相关实现的方式.结果是很多代码需要花钱买,或是有些博主和书的作者没有说清 ...

  8. Java入门与实践——计算机相关知识科普

    计算机相关知识科普 Computer: 全称是电子计算机,俗称电脑, 能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备 由硬件和软件组成 常见的形式有台式计算机.笔记本计算机.大型计算机( ...

  9. Java学习笔记 0、计算机相关知识了解

    文章目录 前言 一.计算机基本知识 1.认识CPU 2.认识内存 二.三大定律 三.IT两大鼻祖 四.万维网 五.windows下的常用命令 六.各类语言及应用 七.各种进制数 四个进制介绍 原码.反 ...

  10. matplotlib中关于画布的相关知识总结

    [前言]: 1.在上一篇文章中,我们讲述了如果画一些简单的图表,比如:柱状图.条形图.饼图等等. 2.这篇文章就来一些干货,总结一下关于画布的相关知识,以及如何创建多个子图. fihure() 函数 ...

最新文章

  1. 综述|寻找自动驾驶中的关键场景
  2. HighLight selected features
  3. 点击Vivado的安装程序exe无法安装的解决办法
  4. 秒杀系统优化方案(下)吐血整理
  5. information_schema系列八(事物,锁)
  6. HDU4353(找一个三角形面积与它里面包含点的比值最小)
  7. SQLmap的下载和安装,以及其参数大全和使用教程(值得收藏)
  8. 299. Bulls and Cows
  9. MySQL中CASE的使用
  10. 存储引擎配置引发的MongoDB启动失败
  11. java实现所有括号组合的遍历_括号正确嵌套问题的实现(Java)
  12. Scrapy框架的使用之Spider Middleware的用法
  13. 解决方案:微信小程序下载文档出错downloadFile:fail url not in domain list
  14. 【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关
  15. 未来科学大奖 计算机,未来科学大奖
  16. 代码自动生成-宏递归思想
  17. 抢购软件能用Java写吗_茅台抢购脚本详细教程!!!另已将茅台抢购做成了一个软件!!!...
  18. 美国的ACH支付体系
  19. LED背光学习_标准和白光LED的基础知识与驱动
  20. ZYNQ之FPGA 片内RAM读写测试实验

热门文章

  1. mysql sjis 校对乱码_mysql 解决中文乱码问题
  2. python list转json对象,python 对象和json互相转换方法
  3. 【转】数据挖掘从入门到进阶
  4. 交互式甘特图控件,教你如何使用日历!
  5. android微信代码大全,微信满屏表情代码大全复制
  6. DevExpress chartControl 数据绑定
  7. 迅雷界面引擎Bolt中编译失败的问题
  8. mpvue小程序实现老虎机
  9. power builder的安装和使用
  10. extjs初学者教程