MATLAB绘图:plot函数与bar函数详解

简介: MATLAB绘图:plot函数与bar函数详解

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。我们可以利用它方便快捷的进行矩阵运算、绘制函数和数据、图像处理。

前一段时间作者在进行毕业设计时使用MATLAB绘制了论文中的一系列插图(包括曲线图、柱状图等),自我感觉其确实是一个必不可少的实用性工具,所以在这里为大家简单介绍一下MATLAB中的基本绘图命令。

plot函数

plot函数应该是matlab中最常用的绘图命令了,可以直接绘制二维图/三维图,同时我们可以控制绘制图形的marker来确定是绘制折线图还是散点图。

其最简单的用法为直接使用plot(X)。

例如:

plot(X); % X为一个列向量或行向量

这时,效果如下图所示,在图中我们可以发现matlab默认把X向量的下标作为了自变量,把对应存储的值作为因变量。

当然我们也可以直接输入(X, Y)两个向量,也可以为矩阵或者是参数和你想编辑的任意公式,分别作为自变量与因变量。例如:

X = 1: 1: 10;% 生成自变量X
Y = 1: 1: 10;% 生成因变量Y
plot(X, Y);% 绘制图形

好了,就是这么简单,我们已经了解了plot函数的基本用法,而且好像可以绘图了,但是这还远远不够,我们还想要控制图形的颜色,线宽,标识符应该怎么做呢?这就需要我们在后续设置一些参数了。

例如我们把plot(X, Y);修改为下述代码来设置颜色及标识符。

plot(X, Y, '.r');% 标记点为红色 . 的散点图
plot(X, Y, '*r');% 标记点为红色 * 的散点图
plot(X, Y, '-*r');% 带标记的红色曲线图

常用的颜色有:

‘r’ 红色

‘g’绿色

‘b’蓝色

‘k’黑色

‘m’品红

我们可以看一下最后一个命令画出的图形形状:

设置线宽及标识符代码需要另外加入参数’LineWidth’与’MarkerSize’

例如:

plot(X, Y, '-r','Marker', '*', 'LineWidth', 1.5, 'MarkerSize', 10);

其他还有一些参数我就不过多介绍了,大家自行探索!

还有一个问题是刚才我们所谈的都是对于一张图中的一条曲线,但是如果我们想要在一个图中画多条曲线呢应该怎么办呢?很简单,只需要在plot函数后面加入hold on; 就可以了。

示例:

X1 = 1: 1: 10;
Y1 = 1: 1: 10;
X2 = 1: 1: 10;
Y2 = 0.5: 0.5: 5;
plot(X1, Y1, '-r','Marker', '*', 'LineWidth', 1.5, 'MarkerSize', 10);
hold on;
plot(X2, Y2, '-r','Marker', '*', 'LineWidth', 1.5, 'MarkerSize', 10);

到目前为止,我个人认为我们已经介绍了关于plot函数的基本用法。

bar函数

我们在上面详细介绍了plot函数的用法及参数设置,plot函数在画散点图以及曲线图确实非常方便,但是有些情况我们想要使用柱状图来表达一些变量的统计分布,那么这就要使用bar函数了。

bar函数与plot函数非常类似,最常用的用法为:bar(X, Y);

示例:

X = 1: 1: 10;
Y = 1: 1: 10;
bar(X, Y); % X,Y中的值相互对应

当然,类似的,我们也可以调整颜色等参数(以及边缘线的粗细,颜色等这里就不做介绍了)

bar(X, Y, 'r');

最后我们再列举一个关于画一个矩阵的柱状图参数设置。(subplot函数用法可以见我的另一篇文章)


四种画法分别为:


grouped:矩阵中的每一行数据为一组,每一组画出当前行中列的值

stacked:以矩阵中的每一行画出一个bar,每一个bar中包含当前行中的所有数据,根据数值的大小占相应的比例

histc与Hist两种方式与第一种grouped方式类似,但是它们的不同之处在于对应的X轴位置。

Y=round(rand(5,3)*10);
figure; % 建立一个图片
subplot(2,2,1); %2行2列的第一个位置
bar(Y,'grouped'); % 以'grouped'的方式画图
title('Group')% 图标题
subplot(2,2,2);%2行2列的第二个位置
bar(Y,'stacked');% 以'stacked'的方式画图
title('Stack')
subplot(2,2,3);%2行2列的第三个位置
bar(Y,'histc');% 以'histc'的方式画图
title('Histc')
subplot(2,2,4);%2行2列的第四个位置
bar(Y,'hist');% 以'hist'的方式画图
title('Hist')

好了,我们通过上述内容介绍了MATLAB中了常用两个作图函数plot与bar。


但是,各位是否认为这样的图片是否就可以直接插在论文中使用了呢?答案是否定的,仔细观察可以发现,我们还没有在图中加入X,Y轴的标签。


关于调整插图格式的问题,参考作者的另一篇博文:MATLAB绘图:插图格式调整

目录
相关文章
|
7天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
7天前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
7天前
|
调度
知识分享|分段函数线性化及matlab测试
知识分享|分段函数线性化及matlab测试
|
7天前
雷达模糊函数及MATLAB仿真(三)
雷达模糊函数及MATLAB仿真
27 0
|
7天前
雷达模糊函数及MATLAB仿真(二)
雷达模糊函数及MATLAB仿真
40 0
|
7天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)

热门文章

最新文章